Если какой-либо файл содержит строку:
...
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
- руководства;перл,perlrun
- -p — цикл построчно
- -i встроенный
- -e — это выражение (регулярное выражение)