Может ли Silver-Searcher получить PATTERN из файла?

Необходимо проверить 84 ШАБЛОНА, я храню их в файле с именем pattern.txt.

Может ли поисковик серебра (также называемый Ag) получить эти шаблоны из pattern.txt?

grep имеет -f Варианты чтения шаблона из файла, но в справочной странице поисковика серебра об этом ничего не сказано.

2 ответа

Нет, подобного параметра -f в ag нет. Простой подход заключается в использовании цикла для передачи шаблонов в ag; например, вы можете использовать цикл while для чтения таких шаблонов:

while read pattern; do ag "$pattern" -G '.*.txt' ; done < patterns.txt

Я предлагаю более быстрый подход к использованию GNU параллельно с ag. Параллельно и ag очень хорошо работают вместе:

< patterns.txt | parallel 'ag --filename --parallel --color "{}" '

Здесь я передаю каждый шаблон в параллель, который, в свою очередь, порождает множество ag-процессов, которые ищут свои собственные соответствия шаблону. Параллель несколько умна в отношении того, сколько процессов нужно запустить, но вы можете настроить его так, как вам хочется ( https://www.gnu.org/software/parallel/man.html). Короче говоря, вы будете быстрее разбирать свои 84 шаблона с помощью распараллеливания.

Объединение строк в файле шаблонов для создания группы регулярных выражений:

ag  "($(paste -sd "|" pattern.txt))" .
Другие вопросы по тегам