Как вы подтверждаете наличие файла, который содержит две или более фразы / слова?

1637
hobbes3

Как вы используете ackдля поиска файла, который содержит, например,

  1. кошка
  2. собака
  3. мышь

где-нибудь в файле? Каждая фраза встречается в файле хотя бы один раз.

Это похоже на поведение поисковой системы в Интернете.

Бонус:

  1. Можем ли мы использовать регулярное выражение для этих отдельных фраз?
  2. Или, возможно, объявить хотя бы сколько раз должна встречаться фраза?
6

2 ответа на вопрос

6
kirkbauer

Это должно сработать: выполнить первое подтверждение, получить список файлов, найти второй набор файлов.

ack phrase2 `ack -l phrase1` 
4
Andy Lester

@kirkbauer предложил

ack phrase2 `ack -l phrase1` 

и это действительно сработает. Я предпочитаю использовать $()синтаксис вместо `` `` синтаксиса

ack phrase2 $(ack -l phrase1) 

С выпуском ack 2.0, вы получаете -xпереключатель, чтобы вы могли сделать это:

ack -l phrase1 | ack -x phrase2 

Он -xсообщает, чтобы взять список файлов для чтения из STDIN.

Похожие вопросы