bash - 如何使用 ack 查找包含两种模式的文件?

标签 bash shell pipe ack

我正在尝试搜索包含 2 个模式的文件。我猜管道是要走的路,但我做错了什么,因为以下内容不起作用:

ack -l "pattern1" | ack -l "pattern2"

我错过了什么?

最佳答案

我从你的问题中了解到,你想要包含 pattern1 和 pattern2 的文件,即使它们位于不同的行。

这是一种方法:

ack -l pattern2 $(ack -l pattern1)

还有一个:

ack -l pattern1 | ack -l -x pattern2

-x 表示“从标准输入获取要搜索的文件列表,就像我是 xargs 程序一样。” (假设您使用的是 ack 2.x 或更高版本)

关于bash - 如何使用 ack 查找包含两种模式的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354689/

相关文章:

linux - 如何在shell bash脚本中使用if查看文件是否有后缀

linux - 使用脚本 shell 获取文件中每一行的最后两个字母

c - 运行多个 fork 进程并不断读取它们的标准,同时打印到它们的标准

python - 当我通过管道使用 sh ( echo "docker-compose"| sh ) 时出现 "docker-compose... "错误

linux - 用于在 Bash 中检查二进制传输的 ASCII 空间的正则表达式

linux - 为什么在存在目标的情况下,bash 中的否定文件存在检查会返回奇怪的结果?

Bash 如何将 stderr 捕获到变量?

linux - 如何在 unix 中只删除 > [大于] 和 < [小于] 之间的一个换行符

shell - 如何在 shell 中使用 awk 变量

c - HP-UX上的GCC,很多poll(),pipe()和文件问题