Grep 多个文件的内容

Grep 多个文件的内容

我的操作系统是Sun Solaris。SunOS sintscdldmu001 5.11 11.3 sun4v sparc sun4v

我发出了命令alter database backup controlfile to trace;,但碰巧忘记了。

当我需要控制文件的内容时,我开始搜索它。现在我想要类似的东西grep *.trc | grep -i 'CONTROLFILE'

查找控制文件内容位于哪个文件下的正确命令是什么?

答案1

grep -l

这将打印文件的名称和匹配的行。它不会为多个匹配项重复文件名。

如果您要查找的字符串是 CONTROLFILE 那么您可以这样做:

grep -li CONTROLFILE /path/to/trcfiles/*

这将输出包含字符串 CONTROLFILE 的文件的名称和匹配行。如果该字符串位于 .trc 文件中并且这就是您想要返回的所有内容,则将其通过管道传递到命令末尾。

grep -li CONTROLFILE /path/to/trcfiles/* | grep *.trc

答案2

如果您想在其余文件中搜索关键字“controlfile”,请使用以下命令,注意 -i 使搜索不区分大小写

grep -i "controlfile" *.trc

但是如果控制文件是一个在其余文件中具有一些要搜索的模式的文件,那么您将必须传递控制文件的内容,如下所示

grep -f controlfile *.trc

这将在其余 trc 文件中搜索 controlfile 的内容。

如果您位于文件所在的同一文件夹中,则只需将 *.trc 作为最后一个参数,否则相应地给出绝对/相对路径。如果您想递归搜索从您的路径开始的其余文件夹中存在的文件,请使用 -r 参数。

答案3

您可以使用如下所示的方法来识别哪个文件包含您的搜索文本

grep -il <control file entry> <path where   trc files are located> *

相关内容