Заменить текст многострочным шаблоном [дублировать]

Я знаю, что вы уже выбрали свой ответ, но это может помочь. Судя по прошлому опыту, полный релиз происходит примерно через 7-8 месяцев после полной заморозки, что означает, что к этому моменту уже исправлено около 40% критических ошибок релиза. Текущие ожидания сообщества состоят в том, что Stretch станет стабильным в какой-то момент до сентября. Однако в ближайшее время ожидается объявление даты релиза.

Для получения дополнительной помощи по этой теме прочитайте этот пост:

http://forums.debian.net/viewtopic.php?f=20&t=132885#p642644

и этот

https:// lists.debian.org/debian-devel-announce/2017/04/msg00013.html

0
14.02.2017, 19:57
2 ответа

Ну, grep дополнительно не позволит вам вносить изменения, так что эта утилита не подходит с самого начала.

Используя GNU sed вместо этого:

$ sed '/^client_encryption_options:/,+1s/enabled:.*/enabled: true/' file

Это позволит найти строку, начинающуюся со строки client_encryption_options: и применить замену к ней и следующей строке. Подстановка заменит строку enabled: и все, что следует за ней в той же строке, на enabled: true.

Замена будет применена к обеим строкам, но поскольку шаблон enabled:.* не найден в первой строке, она останется без изменений. Вторая строка будет изменена безоговорочно (независимо от текста после enabled:).

4
28.01.2020, 02:16

С sed:

sed '/client_encryption_options:/{n;s/false/true/;}'

n - команда для получения следующей строки в пространстве шаблона (после печати и отбрасывания содержимого текущего пространства шаблона), s - для substitute.

3
28.01.2020, 02:16

Теги

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