要仅打印与搜索匹配的文件的名称,请执行以下操作:
ag -l
如果我只想通过列表中的文件进行 grep,我应该使用什么?或者也许有可能以这种方式链接搜索?
从这个页面我看到了ag -l
返回文件名列表和文件标准输入的事实ag
。这让我想到了另一种对我来说非常棒的方法。想分享
ag -l <first_search> | xargs ag -l <second_search> | xargs ag -l ...
使用标准输入重定向:
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