| Romik ( @ 2007-06-18 13:46:00 |
| Entry tags: | administrating linux, howto |
Надо бы запомнить... grep одновременно по 2м и более выражениям.
Задача была такая: упростить выражение вида в что-либо более простое.stdout | grep cat | grep dog | grep bat | grep rat | ...
Выяснилось, что обычный grep/egrep этого делать не умеет. Оператор "ИЛИ" у него есть (|), а вот оператора "И" нет. Есть утилита agrep, которая с такой задачей справляется примерно так:, но такой утилиты у меня в системе нет.agrep 'cat;dog;bat'
Найденные варианты:Запоминайте, вдруг пригодится...sed '/cat/!d; /dog/!d; /bat/!d'
awk '/cat/ && /dog/ && /bat/'
perl -ne 'print if /cat/ && /dog/ && /bat/'