1

要仅打印与搜索匹配的文件的名称,请执行以下操作: ag -l

如果我只想通过列表中的文件进行 grep,我应该使用什么?或者也许有可能以这种方式链接搜索?

4

2 回答 2

1

从这个页面我看到了ag -l返回文件名列表和文件标准输入的事实ag。这让我想到了另一种对我来说非常棒的方法。想分享

ag -l <first_search> | xargs ag -l <second_search> | xargs ag -l ...
于 2019-06-25T15:53:01.497 回答
1

使用标准输入重定向:

ag "SEARCH_PATTERN" < file1, file,2, file3... 

或者使用带有 -g 选项的通配符搜索目标文件。模板如下所示:

ag -g "FILE_PATTERN" "SEARCH_PATTERN"  

所以一个例子如下:

   ag -G '.*.txt' "pattern"

或者,使用 shell 的 for 循环,将包含条目列表的 .txt 文件中的文件或搜索模式输入 ag;例如:

while IFS= read -r patterns; do ag -o "$patterns" ~/somewhere ; done < names.txt
于 2018-04-11T14:29:09.767 回答