LINUX.ORG.RU

История изменений

Исправление kaldeon, (текущая версия) :

если я не прав, объясните мне, как, мне тоже интересно

Я не силён в sed. Насколько я понимаю, он итерирует по строкам. В таком контексте сложно понять, что «receive» найден в контексте «debug».

Есть какие-то «hold space» и «pattern space», но я их не осилил.

Можно попробовать ed. Там нет итерации по строкам. Запустил первый поисковый запрос, потом второй, потом третий, выполнил замену.

/^ *akka *{/
/^ *actor *{/
/^ *debug *{/
/^ *receive *= *..*/
s/on/off/
wq

Запуск:

cat script |ed file

Что может потенциально сломать скрипт: повторяющиеся блоки с одинаковым названием, рекурсивность, multi-line строки.

Исправление kaldeon, :

если я не прав, объясните мне, как, мне тоже интересно

Я не силён в sed. Насколько я понимаю, он итерирует по строкам. В таком контексте сложно понять, что «receive» найден в контексте «debug».

Есть какие-то «hold space» и «pattern space», но я их не осилил.

Можно попробовать ed. Там нет итерации по строкам. Запустил первый поисковый запрос, потом второй, потом третий, выполнил замену.

/^ *akka *{/
/^ *actor *{/
/^ *debug *{/
/^ *receive *= *..*/
s/on/off/
wq

Запуск:

cat script |ed file

Что может потенциально сломать скрипт: повторяющиеся блоки с одинаковым названием, рекурсивность.

Исходная версия kaldeon, :

если я не прав, объясните мне, как, мне тоже интересно

Я не силён в sed. Насколько я понимаю, он итерирует по строкам. В таком контексте сложно понять, что «receive» найден в контексте «debug».

Есть какие-то «hold space» и «pattern space», но я их не осилил.

Можно попробовать ed. Там нет итерации по строкам. Запустил первый поисковый запрос, потом второй, потом третий, выполнил замену.

/^ *akka *{/
/^ *actor *{/
/^ *debug *{/
/^ *receive *= *..*/
s/on/off/
wq

Запуск:

cat script |ed file