grep 搜索子目录

grep search on subdirectories

我正在尝试在所有文件中的目录中搜索文本。它也应该访问子文件夹。有名称中带有白色space字符的文件夹和文件。我正在使用以下命令进行搜索。

find . -type f | xargs grep -rls 'my text'

这不会访问带有白色 space 字符的文件夹和文件。关于命令的更改内容有什么建议吗?

我亲自接触过的任何 grep 版本都支持 -r 开关,递归。

只需将它交给顶级目录,grep 就会执行它的操作:

grep -r myregex /home/marcus/bunchoffilesindirectories

我认为这应该可以很好地处理带有空格的文件(虽然不是换行符)但是您可以使用 find -print0xargs -0 来更安全。

话虽如此,您当前对 grep-r 参数的使用是毫无意义的,因为它只会被赋予要操作的目录。此外,您在这里使用 find 是没有意义的,因为 grep -r 直接在此处执行您想要的操作。

只需使用 grep -rls 'my text' ..