有 84 个 PATTERN 需要检查,我将它们存储在文件名pattern.txt中。
silver-searcher (也称为 Ag)是否能够从pattern.txt获得这些模式?
grep 具有-f
从文件中读取模式的选项,但 silver-searcher 的手册页没有提及它。
有 84 个 PATTERN 需要检查,我将它们存储在文件名pattern.txt中。
silver-searcher (也称为 Ag)是否能够从pattern.txt获得这些模式?
grep 具有-f
从文件中读取模式的选项,但 silver-searcher 的手册页没有提及它。
不,ag 中没有类似的 -f 选项。简单的方法是使用循环将模式传递给 ag;例如,您可以使用 while 循环来读取这样的模式:
while read pattern; do ag "$pattern" -G '.*.txt' ; done < patterns.txt
我建议使用 GNU 与 ag 并行的更快方法。Parallel 和 ag 可以很好地协同工作:
< patterns.txt | parallel 'ag --filename --parallel --color "{}" '
在这里,我将每个模式传递给并行,这反过来会产生许多搜索自己的模式匹配的 ag 进程。Parallel 在启动多少进程方面有点聪明,但您可以根据自己的喜好对其进行调整(https://www.gnu.org/software/parallel/man.html)。简而言之,您将通过并行化更快地完成 84 种模式。
加入模式文件中的行以创建正则表达式组:
ag "($(paste -sd "|" pattern.txt))" .