Может ли 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))" .