搜索多个术语

搜索多个术语

我知道这grep -E 'termA|termB' files允许我在多个文件中搜索termA OR termB。我想做的是搜索termA AND termB。它们不必在同一行,只要这两个术语存在于同一个文件中即可。本质上是一种“在结果中搜索”功能。

我知道我可以将一个 grep 的结果传送到另一个 grep 中,但是在处理许多文件时这似乎很慢。

grep -l "termA" * | xargs grep -l "termB" | xargs grep -E -H -n --color "termA|termB"

希望上述方法不是实现这一目标的唯一方法。

如果这个可以在 Windows(有 cygwin)和 Linux 上运行就更好了。我不介意安装一个工具来执行此任务。

答案1

您可以使用 awk 来实现这一点。只需为您要查找的每个匹配项设置一个标志,然后检查是否已设置所有标志。

相关内容