find一个文件夹中的string和它来自哪个文件?

我正在尝试在/ var / log目录中find一些关键字,所以使用

cd / var / log cat * | grep 关键字

我发现这个string在那个目录下,看到它所在的行,但不知道它来自哪个文件。 我怎样才能findstring,并看到它的猫的文件?

grep可以把文件名作为参数。

 cd /var/log grep keyword * 

而且,如果您一次从多个文件进行grep,那么该行所来自的文件名将与所find的行一起打印。

如果你只提供一个文件名给grep,但是你想在文件上显示这个文件名,那么把-H选项传递给grep – 如果你在命令行中使用globbing(例如*.txt )知道有多less文件将被search)。

如果你想显示行号,那就是-n选项。

find /var/log -type f | xargs grep -H

要么

find /var/log -type f -name \*log | xargs grep -H

或者(比xargs慢得多)

find /var/log -type f -exec grep -H {} \;

对于奖励积分,grep -i会使search不区分大小写(但速度较慢)