在 *nix 下,如何在目录内的文件内查找字符串?

在 *nix 下,如何在目录内的文件内查找字符串?

我正在使用 ubuntu linux,并且每天使用带有终端仿真器的 bash 执行许多任务。

我想知道如何在特定目录内的文件内查找字符串或子字符串。

如果我知道包含目标子字符串的文件,我只需 cat 该文件并通过 grep 将其传输出去,因此:

cat file | grep mysubstring

但在这种情况下,令人讨厌的子字符串可能位于已知目录内的任何位置。

我如何寻找我的子字符串?

答案1

使用 shell 通配符:

grep mysubstring *

如果要搜索子目录,请使用-r递归选项:

grep -r myssubstring .

答案2

find -type f | xargs grep mysubstring

这些命令(findxargsgrep)有很多选项,因此您可以大幅调整此操作。

答案3

假设我想找到目录“~/projects”下所有包含文本“wiki”的python代码文件,脚本如下:

grep -lir "wiki" ~/projects/**/*.py

根据您的具体要求调整脚本。

答案4

如果您不需要以批处理模式执行此操作,您可以安装午夜指挥官(mc),它可以在文件中搜索字符串。

相关内容