поиск нескольких слов в файле - PullRequest
1 голос
/ 19 мая 2011

Если я хочу найти вхождение слова в файл, используя grep, я использую

grep token file

Что делать, если я хочу найти строки, содержащие несколько токенов, псевдокод:

grep "token1 and token2" file

как это можно сделать?

Ответы [ 3 ]

2 голосов
/ 19 мая 2011

Самое простое, что приходит на ум:

grep token1 file | grep -h token2

Если вы хотите сопоставить шаблоны в определенном порядке, рассмотрите регулярное выражение:

grep -E 'token1(.*?)token2' file

Для совпадений token1 и token2 (в любой строке), я бы сделал

grep -e token1 -e token2 *.cpp

Чтобы вывести только имена файлов совпадающих файлов, а не конкретные совпадающие строки:

grep -l -e token1 -e token2 *.cpp
1 голос
/ 19 мая 2011

Grep не имеет оператора AND, вместо него можно использовать awk:

awk '/token1/ && /token2/' file
0 голосов
/ 19 мая 2011

Попробуйте это:

grep token1 file | grep token2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...