6

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

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

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

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

Бонус:

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

2 ответа2

6

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

ack phrase2 `ack -l phrase1`
4

@kirkbauer предложил

ack phrase2 `ack -l phrase1`

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

ack phrase2 $(ack -l phrase1)

С выпуском ack 2.0 вы получаете ключ -x так что вы можете сделать это:

ack -l phrase1 | ack -x phrase2

-x указывает ack взять список файлов для чтения из STDIN.

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