У меня есть входной файл что-то вроде этого:
some line
some other line
another line
start_delimiter
interesting stuff
more interesting stuff
even more interesting stuff
end_delimiter
possibly more stuff
Я хочу манипулировать строками между start_delimiter и end_delimiter, которые соответствуют шаблону регулярных выражений, и записывать результаты во входной файл. Например, добавьте «//» в начало строк, содержащих слово «more» (если эти строки находятся между разделителями):
some line
some other line
another line
start_delimiter
interesting stuff
//more interesting stuff
//even more interesting stuff
end_delimiter
possibly more stuff
Я могу получить раздел текста между разделителями следующим образом:
awk '/start_delimiter/,/end_delimiter/' inputfile
Если я передам это другому awk, я могу изменить интересующие меня строки:
awk '/more/ {sub(/^/,"//")}1'
В чем я не уверен, так это в том, как вернуться и заменить раздел с разделителями новым содержимым. Есть идеи? Бонусные баллы за однострочник.