Bash 如何在txt文件中搜索模式,并在与第一个模式匹配的文件上打印第二个模式匹配的结果?

Bash 如何在txt文件中搜索模式,并在与第一个模式匹配的文件上打印第二个模式匹配的结果?,bash,grep,find,Bash,Grep,Find,有人知道在bash中,我如何在包含txt文件和子目录(我也必须搜索)的目录中搜索模式a,然后在匹配模式a的文件上打印匹配模式B的结果吗?您可以使用管道链接您的grep调用。像这样: grep 'Error' file.txt | grep 'Database' 这个虚构的示例将为您提供与数据库相关的文件中的所有错误消息。find/-name“*PATTERN_a*”| xargs grep PATTERN_B find <BASEDIR>/ -name "*PATTERN_A*"

有人知道在bash中,我如何在包含txt文件和子目录(我也必须搜索)的目录中搜索模式a,然后在匹配模式a的文件上打印匹配模式B的结果吗?

您可以使用管道链接您的grep调用。像这样:

grep 'Error' file.txt | grep 'Database'
这个虚构的示例将为您提供与数据库相关的文件中的所有错误消息。

find/-name“*PATTERN_a*”| xargs grep PATTERN_B
find <BASEDIR>/ -name "*PATTERN_A*" | xargs grep PATTERN_B

我相信这将实现您的目标:)

1)您的示例不在
子目录中搜索
,2)您的示例不在与模式A匹配的文件上搜索
。为此,您可以使用xargs,它从上一个命令的输出中获取参数,并将其馈送到下一个命令。因此,
grep-l
将为您提供文件名,这些文件名可以通过xargs提供给下一个grep.confirm。但这个问题很难理解。你还知道这代表什么吗:
然后在匹配模式A的文件上,打印匹配模式B的结果?
?我认为他有一些目录结构,其中任意一个文件可能包含两个模式,他希望找到这些文件。因此,我的方法将是
grep-rl模式1*| xargs grep模式2
或类似的方法。正如你所说:)问题不是很清楚,让我们等到开场白最终会提供更多的信息。是的,我想要一些阿巴苏所说的东西。xargs完成了这个任务。谢谢是的,这就是我要找的。非常感谢。