The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Sed question"
Отправлено Andrey Mitrofanov, 24-Сен-10 13:34 
>У меня получилось вот так:
>
>
$ sed -nE '/^START$/h;/^END$/{x;/^START.*\nFLAG 0(\n|$)/{p;x;p;x;};};/^START$/!{x;/^START/!x;/^START/{x;H;};};' tst.sed 

А у меня вот так -
sed -n '/^START$/{h;d};x;/./!{x;d};x;H;/^flag 0$/!{/^flag /bc};/^END$/!d;x;/./p;:c;s/.*//;h'

>Логика следующая:

Накапливаем "правильние" строки в hold-е следующим образом:
Если строка =="START" - "просто" поместить её в буфер = начать накопление [заново].
(до [первого] START буфер пустой, если "вдруг" START повторился - сбрасываем, чтоб не было вложений)
Если буфер пуст (не накапливаем строки, вне блока START-END), читать следующую строку == отбросить тек строку.
[Буфер не пуст,в буфере уже есть START] -- добавить тек.строку к нему.

Если строка - flag, но не "flag 0", то сбросить буфер [- не накапливать больше].

Если "END", напечатать накопленное, если там что-то было, и очистить буфер. (буфер пустой = ждём слкдующего START)

PS: Какой выразительный язык!(тм) Я начинаю догадываться, почему не люблю perl... Ж))))
PPS: ...постоянно путаю n вместо d - к чему бы это? :-/

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру