как выполнить множественную замену блока текста с помощью sed?

Это не атомарно (API файловой системы Unix на самом деле не обеспечивает какого-либо способа выполнения атомарных операций, затрагивающих несколько файлов ), но он отказоустойчив -. Сжатый файл — это новый файл, он не перезаписывает исходный и не удаляет исходный файл до тех пор, пока не будет завершено создание сжатого файла (. Это может вызвать проблему, если у вас недостаточно места на диске. место для обоих файлов ).

Если возникнет ошибка или вы прервете сжатие, исходный файл останется без изменений. Частично сжатый файл обычно удаляется.

Нет возможности возобновить его в середине, вы просто начинаете с самого начала.

0
05.10.2021, 07:56
1 ответ

Я предлагаю решение, предполагающее (до более полной выборки ввода ), что линии имеют строгие шаблоны концов. Если это так, то более сложное сопоставление не потребуется.

/^Jit/{
  s/false$/true/
  s/[0-9\-]\+$/2021-02-01/
}'

Выход:

Jit.... enabled=true
Jit.... From=2021-02-01

Об удаленном флаге gсм. ответ @terdon .

1
05.10.2021, 08:36

Теги

Похожие вопросы