Я знаю, что grep -E 'termA|termB' files позволяют мне искать в файлах termA OR termB . Вместо этого я хотел бы найти termA AND termB . Они не обязательно должны быть в одной строке, если два термина существуют в одном файле. По сути, функция "поиск в результате".

Я знаю, что могу передать результаты одного grep в другой, но это кажется медленным при просмотре многих файлов.

grep -l "termA" * | xargs grep -l "termB" | xargs grep -E -H -n --color "termA|termB"

Надеюсь, что это не единственный способ сделать это.

Было бы очень хорошо, если бы это могло работать на Windows (есть Cygwin) и Linux. Я не против установить инструмент для выполнения этой задачи.

1 ответ1

1

Вы можете использовать awk для этого. Просто установите флаг для каждого совпадения, которое вы ищете, затем проверьте, все ли флаги установлены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .