Eu acho que você quer algo assim:
/^[^#]*$PARAM/s/$OLD/$NEW/
substitua $OLD
por $NEW
, se não houver marca antes de $PARAM
Eu tenho o seguinte comando sed no meu script
sed -i "/$PARAM/s/$OLD/$BEW/g" $FILE
este comando sed substitui o valor OLD por novo na linha que o PARAMETER exsit
mas também preciso ignorar as linhas "#"
como é possível alterar a sintaxe do sed para ignorar as linhas "#"?
a solução deve ser apenas com sed não por perl!
Eu acho que você quer algo assim:
/^[^#]*$PARAM/s/$OLD/$NEW/
substitua $OLD
por $NEW
, se não houver marca antes de $PARAM
O comando b
(branch) deve ajudar:
/^#/b; /$PARAM/ s/$OLD/$NEW/g
Do manual de sed
:
b label Branch to label; if label is omitted, branch to end of script. [...]
Tags sed