Можно ли найти и заменить строку в файле ИЛИ добавить строку в конец, если ее там нет?
Я знаю, что могу использовать это, чтобы найти и заменить :
sed -i -e "s/^SEARCH/LINE 1\nLINE 2/" file
Я знаю, что могу добавить к файлу следующим образом:
cat << EOF | tee -i file1 file2
LINE 1
LINE 2
EOF
Можно ли как-нибудь это объединить.Поэтому, если /^SEARCH.*$/
соответствует, тогда замените его, если нет, тогда добавьте замену в конец файла.
Обновите с лучшим примером ввода / вывода:
Например, если бы у меня был этот входной файл testfile
:
Alpha
Bravo
Charlie
Допустим, я хотел найти и заменить Bravo
на Bravo=bingo
, ИЛИ добавитьBravo=bingo
если Bravo
нет, ожидаемый вывод:
Alpha
Bravo=bingo
Charlie
Это потому, что в файле существует Bravo
, поэтому он заменяется.
Допустим, яхотел найти и заменить Delta
на Delta=bingo
, ИЛИ добавить Delta=bingo
, если Delta
нет, ожидаемый результат:
Alpha
Bravo
Charlie
Delta=bingo
Это потому, что Delta
отсутствует в файле, поэтому он добавляется.