mva 29.08.2012 16:54 N900

Товарищи юниксойды, а есть ли в природе (кроме перла, я его не знаю) утилита с мультистрочным поиском по тексту и возможностью по условию этого поиска делать над ним действия.
Если что:
Дано: в общем случае — строки вида (либо обратно-отсортированные по OLD-NEW чтобы OLD шло в начале):
"<текст>";"NEW";"<циферный_id>";
"<текст>";"OLD";"<циферный_id>";
но среди них могут попадаться OLD не имеющие аналога в NEW. Нужно проверить, нет ли рядом с OLD строки с таким же текстом, и в случае если нет — удалить эту строку (вместе с переносом). Во второй проход сделать вместо двух строк с OLD/NEW что-то типа «ID_от_OLD_строки=ID_от_NEW_строки».
Что-то я устал пытаться сделать это на sed'е :(

1. SirAnthony 29.08.2012 16:57 Home

grep + awk. Возможно одного awk хватит, я его почти не знаю.

2. lomalkin 29.08.2012 17:06 QD42109EE5

egrep -o

3. mvalomalkin /2 29.08.2012 17:07 N900

и он умеет мультистрочный поиск? можно пример?

4. lomalkin 29.08.2012 17:08 QD42109EE5

а. тогда перед этим | tr '\n' ' ' | egrep ...

5. mvalomalkin /4 29.08.2012 17:10 N900

строк овер9к. И прошу ещё раз прочитать условие задачи: надо сначала выпить строку с OLD, если рядом нету строки с таким же текстом и NEW (id разные у обоих). И только после этого делать ID_OLD=ID_NEW :(

6. lomalkinmva /5 29.08.2012 17:26 QD42109EE5

я вчера 2 часа ебся над подобной задачей — получить список сетей из iwlist в формате, прогодном для отправки в инет, сделал через tr и egrep

7. mvalomalkin /6 29.08.2012 17:28 N900

но tr, сука, тоже не умеет смотреть на соседние строки и в зависимости от этого выбирать действие :(

8. lomalkinmva /7 29.08.2012 17:30 QD42109EE5

ну им я тупо убрал \n, а дальше грепал. можно также подумать про grep --unbuffered, но я так до конца и не понял как эта штука работает.

9. mvalomalkin /8 29.08.2012 17:33 N900

но если просто убрать переносы строки то понять что вырезать будет ещё сложнее же, не? :)
Алсо, тут как раз буфера и нужны.
Алсо2 — меня уже заебло и я пытаюсь на Lua сделать

10. rapture 29.08.2012 20:42 unknown

awk

Do you really want to delete ?