mva
29.08.2012 16:54 N900
Товарищи юниксойды, а есть ли в природе (кроме перла, я его не знаю) утилита с мультистрочным поиском по тексту и возможностью по условию этого поиска делать над ним действия.
Если что:
Дано: в общем случае — строки вида (либо обратно-отсортированные по OLD-NEW чтобы OLD шло в начале):
"<текст>";"NEW";"<циферный_id>";
"<текст>";"OLD";"<циферный_id>";
но среди них могут попадаться OLD не имеющие аналога в NEW. Нужно проверить, нет ли рядом с OLD строки с таким же текстом, и в случае если нет — удалить эту строку (вместе с переносом). Во второй проход сделать вместо двух строк с OLD/NEW что-то типа «ID_от_OLD_строки=ID_от_NEW_строки».
Что-то я устал пытаться сделать это на sed'е :(
grep + awk. Возможно одного awk хватит, я его почти не знаю.
egrep -o
и он умеет мультистрочный поиск? можно пример?
а. тогда перед этим | tr '\n' ' ' | egrep ...
строк овер9к. И прошу ещё раз прочитать условие задачи: надо сначала выпить строку с OLD, если рядом нету строки с таким же текстом и NEW (id разные у обоих). И только после этого делать ID_OLD=ID_NEW :(
я вчера 2 часа ебся над подобной задачей — получить список сетей из iwlist в формате, прогодном для отправки в инет, сделал через tr и egrep
но tr, сука, тоже не умеет смотреть на соседние строки и в зависимости от этого выбирать действие :(
ну им я тупо убрал \n, а дальше грепал. можно также подумать про grep --unbuffered, но я так до конца и не понял как эта штука работает.
но если просто убрать переносы строки то понять что вырезать будет ещё сложнее же, не? :)
Алсо, тут как раз буфера и нужны.
Алсо2 — меня уже заебло и я пытаюсь на Lua сделать
awk