История изменений
Исправление 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