GREEN
не приходит, так как он помещен генератором на отдельную строку, поэтому ваш скрипт sed
не находит совпадения. Без специальных мер sed
втягивает входящий поток в пространство совпадения строка за строкой.
Итак, вам нужно втягивать в пространство совпадения новые строки командой N
, пока вы не получите там закрывающую , затем сохранить копию пространства шаблона в пространстве hold, удалить ведущий тег
до конца пространства совпадения и вывести его. и удалить все, начиная с
После этого нужно заменить место совпадения содержимым места удержания, удалить уже напечатанную часть и начать заново с поиска ведущего тега см. Экраны в . По умолчанию или что-то подобное. Доступные escape-последовательности описаны на странице руководства .
info sed
для подробностей / etc / issue
следующие: getty
экранирование, а не типичное экранирование в стиле C или оболочке. В частности:
\ n
вставляет имя хоста («имя узла») \ l
вставляет строку tty / etc / issue
у вас есть, вы увидите Debian GNU/Linux 8 hostname tty1
agetty (8)
(среди прочего). Если вы хотите использовать другие escape-последовательности, вам следует проверить, какую реализацию getty
вы используете, и прочитать ее документацию - некоторые реализации поддерживают больше escape-последовательностей, чем другие. \ n
и \ l
широко поддерживаются. Теги
Похожие вопросы