1

У меня есть следующая команда sed в моем скрипте

sed -i "/$PARAM/s/$OLD/$BEW/g"           $FILE

эта команда sed заменяет значение OLD на новое в строке, в которой находится PARAMETER

но мне нужно также игнорировать строки "#"
Как можно изменить синтаксис sed, чтобы игнорировать строки "#"? решение должно быть только с помощью Sed, а не Perl!

2 ответа2

3

Я думаю, что вы хотите что-то вроде этого:

/^[^#]*$PARAM/s/$OLD/$NEW/

замените $OLD на $NEW , если перед $PARAM нет хеш-метки

1

Команда b (branch) должна помочь:

/^#/b; /$PARAM/ s/$OLD/$NEW/g

Из руководства по sed:

        b label
              Branch to label; if label is omitted, branch to end of script.

        [...]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .