OUTPUT
Это должно быть намного быстрее, чем
awk[119747] (я думаю)[119546] благодаря
sed's
stream operations.
Это было одним из самых менее сложных из того, что я делал - как только я обернул голову вокруг него. Это одна из первых веток, которые мне удалось обойтись без расширенного регекса GNU - это должно быть довольно портативно.
Эти ветки дважды - в начале есть achor :s
и якорь
$ nc proxy.example.com 8080
-> CONNECT mail.example.com:587 HTTP/1.0
->
<- HTTP/1.0 200 Connection Established
<- Proxy-agent: Apache/2.2.19 (Debian)
<-
<- 220 mail.example.com ESMTP Badger badger badger badger badger postfix postfix!
-> ehlo grawity-pc
<- 250-mail.example.com
<- 250-PIPELINING
<- 250-SIZE 10240000
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-8BITMIME
<- 250 DSN
-> quit
<- 221 2.0.0 Bye
:l
для подписчика. Это работает, так как оператор
n
удаляет предыдущую строку из шаблона-пространства
sed[119757] при вытягивании новой.
Как только
sed
находит ваш
"$ENTRY"
, он устанавливает ветку [119561] [119762]:l[119763] abel, [119562] печатает линию и тянет новую. Затем
sed
проверяет, начинается ли новая строка со словосочетания
'Entry'
и в этом случае она ответвляется обратно на
: s[119769]tart[119568] и снова начнёт сканирование его входного текста на предмет указанного вами
"$ENTRY,"
, иначе он вернётся только к
:l[119773]abel[119572] и повторит
p[119775]rint, [119776]n[119777]ext, [119778]/check/
operation.
Эта команда сводится к следующему:
Это приведет к созданию всех строк, начиная с той, которая содержит [119623]234238[119624], и заканчивая той, которая содержит слово [119625] Entry[119626].
Для ввода примера вы можете получить: