我的脚本中有以下 sed 命令
sed -i "/$PARAM/s/$OLD/$BEW/g" $FILE
此 sed 命令将 PARAMETER 所在行中的 OLD 值替换为 new
但是我还需要忽略“#”行,
那么如何才能更改 sed 语法以忽略“#”行呢?解决方案必须仅使用 sed,而不是 perl!
答案1
我想你想要这样的东西:
/^[^#]*$PARAM/s/$OLD/$NEW/
如果前面没有井号,则替换$OLD
为,$NEW
$PARAM
答案2
(分支)命令b
应该有帮助:
/^#/b; /$PARAM/ s/$OLD/$NEW/g
摘自手册sed
:
b 标签 分支到标签;如果省略标签,则分支到脚本末尾。 [...]