如何循环遍历当前目录和子目录中的所有文件来查找字符串?

cal*_*223 0 directory search files

您好,例如,我试图循环遍历目录及其所有子目录以在所有文件中查找字符串“foo”。然后我想显示包含它的所有文件的文件名(包括完整路径)。

操作系统是unix并使用bash shell。

任何建议,将不胜感激。谢谢

ter*_*don 5

您可以使用递归grepgrep至少在 GNU 中,这是一个-R选项:

grep -R foo /path/to/parent/directory
Run Code Online (Sandbox Code Playgroud)

例如,如果您使用完整路径(如上所述),/home/callsign223/foo/则所有文件都将显示其合格路径。如果您只想查看文件名,而不是匹配的行,则可以使用-l仅打印文件名:

grep -lR foo /path/to/parent/directory
Run Code Online (Sandbox Code Playgroud)

请注意,该-R选项不可移植,并且并非所有grep实现都支持。