如何将一个ag搜索找到的文件用作第二个ag搜索的域?

4
假设我执行ag -l foo,这会给我一个文件列表。
如何使用第二次的 ag 搜索仅在那些文件中?

管道和 xargsag -l foo | xargs ag bar - Inian
1个回答

7

假设你在bash shell下,可以执行以下操作:

ag whatever $(ag -l foo)

因此,要查找与“猫”和“狗”都匹配的所有文件:

ag cat $(ag -l dog)

你也可以使用 xargs:
ag -l dog | xargs ag cat

如果你使用了类似于grep的ack工具,你可以使用-x选项从标准输入中读取输入文件列表。
ack -l dog | ack -x cat

1
请注意,如果ag -l dog返回包含空格的路径,则ag -l dog | xargs ag cat可能会(部分)中断。为了解决这个问题,在agxargs上都使用-0,即ag -l -0 dog | xargs -0 ag cat - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接