Grep用于多个文件的多种模式

标签 grep

我一直在四处搜寻,但找不到所需的答案。

假设我在目录text1.txt中有一个文件mydir,其内容是:

one
two

另一个也称为text2.txt(也在mydir中),其内容是:
two
three
four

我正在尝试获取文件列表(针对给定目录),其中包含我搜索的所有(并非任何)模式。在我提供的示例中,我正在寻找类似于以下内容的输出:
./text1.txt

或者
./text1.txt:one
./text1.txt:two

我唯一能找到的是关于匹配文件中的任何模式,或匹配单个文件中的多个模式(我尝试将其扩展到整个目录,但收到grep使用错误)。

任何帮助深表感谢。

我尝试过的编辑
grep "pattern1" < ./* | grep "pattern2" ./*

“歧义重定向”
grep 'pattern1'|'pattern2' ./*

返回与任一模式匹配的文件

最佳答案

一种方法可能是这样的:

find . | xargs grep 'pattern1' -sl | xargs grep 'pattern2' -sl

关于Grep用于多个文件的多种模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422743/

相关文章:

unix - 将一个命令的输出作为参数传递给另一个命令

regex - 如何 grep/sed/awk 获取以空白字符开头的一系列输出

regex - 在文件中查找函数并打印其内容的命令

bash - 如何在bash中用逗号分隔grep结果?

linux - grep "str"和 grep 之间有什么区别?和 grep "str"*

unix - 如何限制 grep 只搜索你想要的文件

bash - 使用 grep 查找版本号

regex - 如何找到以 ".html"结尾但文件名中没有 ".bin"的文件?

linux - grep 和 ls : 'l' flag not supported for ls when used with xargs?

bash:如果 grep 管道选择任何行则退出