LINUX.ORG.RU

Как sed'ом обрабатывать весь входной поток как одну строку?


0

0

Или иным способом отрезать начало потока до определённой ключевой фразы и конец потока с определённой же ключевой фразы. Но с сохранением разбивки на строки того, что должно остаться.

★★★★★
Ответ на: комментарий от KRoN73
sed -n -r '1h;1!H;${;g;s/^.*?тут-маркер(.*)$/\1/;p;}'

OMFG, напоминает знаменитый однострочник. Можно узнать, как это работает (в двух словах)? А то смотрю в man sed как на новые ворота

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

>Можно узнать, как это работает (в двух словах)?

Я готовое решение нашёл :) А так, насколько понял:
1h - занести строку в буфер накопления(?), если она первая
1!H - добавить строку в буфер, если не первая
g - перенести из буфера накопления в буфер шаблонов.
s - как обычно, уже для всего блока
p - распечатать буфер шаблонов

...

Сам бы, без готового решения, конечно, никогда бы не додумался до такого :D

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от dexpl

>Насколько я вижу, это не из

Нет, не с официального сайта. У кого-то нагуглил аналогичную проблему с решением, ссылку уже потерял, конечно.

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.