SED 查找并替换保留缩进

SED 查找并替换保留缩进

我似乎找不到答案,我正在尝试查找并替换文本。

例如,找到newName:并替换为一个扩展的变量。
我试过:

sed -i "/  newTag:/c  newTag: $IMAGE_TAG"

这个删除了缩进,并在值中添加了双引号(我不想要)。我只想要2NewName和值之前的缩进,例如NewName: newvalue

以下是图像列表的 YAML 格式:

images:
    name: alpine/docker
    newName: replaceme
    newTag: replaceme

答案1

s或命令可以替换一行中的某个值,而其他内容保持不变。它还可以在替换中扩展 Bash 变量substitutesed

newtag="NEWTAG"
echo "    oldTag: value" | sed  "s/oldTag:/$newtag:/"

输出:

    NEWTAG: value

更多s关于SED 手册

相关内容