Найти и отредактировать строку в файле

Найти и отредактировать строку в файле

Если какой-либо файл содержит строку:

...
OPTION=“—option1 —option2 param —option3 —option4”
...

Какая комбинация утилит будет наилучшей для:

  • Найдите эту строку в файле (предположим, что это единственная строка со строкой «OPTION»
  • добавьте к строке параметров, чтобы теперь получилось:

    OPTION=“—option1 —option2 param —option3 —option4”
    

решение1

С почтенным редактором:

ed file <<<EOF
/OPTION/a
-option5
.
wq
EOF

решение2

С использованиемsed

sed 's/\(OPTION=\“—option1 —option2 param —option3 —option4\)\"/\1 -option5\"/

\(помещает шаблон в регистр, который вызывается \1для замены. Обратите внимание \", где вам нужно экранировать "с помощью обратной косой черты.

Если вы ищете шаблон, начинающийся с OPTION, вы можете использовать

sed 's/\(OPTION=.*\)\"/\1 -option5\"/

решение3

perl -pi -e 's/(OPTION=".*)"/$1  —option5"/g' file.txt

Связанный контент