Несколько шаблонов с Ack-grep? - PullRequest
6 голосов
/ 31 мая 2011

Возможно ли (и как) связать шаблоны с помощью ack (ack-grep в некоторых дистрибутивах Linux), как я привык к grep?

например,

grep "foo" somefile.c | grep -v "bar"

... для сопоставления всех строк с "foo", но без "bar".

1 Ответ

10 голосов
/ 31 мая 2011

ack использует регулярные выражения Perl, и они позволяют прогнозные утверждения :

^(?!.*bar).*foo.*$

будет соответствовать строке, содержащей foo, но не содержащей bar.

Я не знаком с использованием ack, но что-то вроде этого должно работать:

ack '^(?!.*bar).*foo.*$' myfile
...