如何使用“cat”在多个文件中搜索?

1 command-line cat

我想要的是在一个目录中找到包含匹配项的所有文件,当它找到匹配项时,它会显示找到匹配项的文件。

例子

cat * | grep password: 
Run Code Online (Sandbox Code Playgroud)

在这里,它将显示所有具有“密码”的匹配项:

但它没有显示匹配属于哪个文件。

Eli*_*ias 8

我认为在您通过管道传输cat示例中的结果后不可能获得文件名,因为该cat命令只会连接内容,之后有关文件名的信息就消失了。

相反,您可以做的是依赖grep命令在获取多个输入文件时的行为,然后grep将显示每个匹配项的文件名。

所以,而不是

cat * | grep password:
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

grep password: *
Run Code Online (Sandbox Code Playgroud)