我似乎找不到答案,我正在尝试查找并替换文本。
例如,找到newName:
并替换为一个扩展的变量。
我试过:
sed -i "/ newTag:/c newTag: $IMAGE_TAG"
这个删除了缩进,并在值中添加了双引号(我不想要)。我只想要2键NewName
和值之前的缩进,例如NewName: newvalue
以下是图像列表的 YAML 格式:
images:
name: alpine/docker
newName: replaceme
newTag: replaceme
答案1
s
或命令可以替换一行中的某个值,而其他内容保持不变。它还可以在替换中扩展 Bash 变量substitute
。sed
newtag="NEWTAG"
echo " oldTag: value" | sed "s/oldTag:/$newtag:/"
输出:
NEWTAG: value
更多s
关于SED 手册。