mrt*_*mgs 3 bash shell pipe ack
我正在尝试搜索包含 2 个模式的文件。我猜管道是要走的路,但我做错了什么,因为以下不起作用:
ack -l "pattern1" | ack -l "pattern2"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我从您的问题中得知,您需要包含模式 1 和模式 2 的文件,即使它们位于不同的行上。
这是一种方法:
ack -l pattern2 $(ack -l pattern1)
Run Code Online (Sandbox Code Playgroud)
这是另一个:
ack -l pattern1 | ack -l -x pattern2
Run Code Online (Sandbox Code Playgroud)
上面-x
写着“从标准输入中获取要搜索的文件列表,就好像我是xargs
程序一样。” (假设您使用的是 ack 2.x 或更高版本)