我正在使用 ubuntu linux,并且每天使用带有终端仿真器的 bash 执行许多任务。
我想知道如何在特定目录内的文件内查找字符串或子字符串。
如果我知道包含目标子字符串的文件,我只需 cat 该文件并通过 grep 将其传输出去,因此:
cat file | grep mysubstring
但在这种情况下,令人讨厌的子字符串可能位于已知目录内的任何位置。
我如何寻找我的子字符串?
答案1
使用 shell 通配符:
grep mysubstring *
如果要搜索子目录,请使用-r
递归选项:
grep -r myssubstring .
答案2
find -type f | xargs grep mysubstring
这些命令(find
、xargs
和grep
)有很多选项,因此您可以大幅调整此操作。
答案3
假设我想找到目录“~/projects”下所有包含文本“wiki”的python代码文件,脚本如下:
grep -lir "wiki" ~/projects/**/*.py
根据您的具体要求调整脚本。
答案4
如果您不需要以批处理模式执行此操作,您可以安装午夜指挥官(mc),它可以在文件中搜索字符串。