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 -print0
和 xargs -0
来更安全。
话虽如此,您当前对 grep
的 -r
参数的使用是毫无意义的,因为它只会被赋予要操作的目录。此外,您在这里使用 find
是没有意义的,因为 grep -r
直接在此处执行您想要的操作。
只需使用 grep -rls 'my text' .
.
我正在尝试在所有文件中的目录中搜索文本。它也应该访问子文件夹。有名称中带有白色space字符的文件夹和文件。我正在使用以下命令进行搜索。
find . -type f | xargs grep -rls 'my text'
这不会访问带有白色 space 字符的文件夹和文件。关于命令的更改内容有什么建议吗?
我亲自接触过的任何 grep
版本都支持 -r
开关,递归。
只需将它交给顶级目录,grep 就会执行它的操作:
grep -r myregex /home/marcus/bunchoffilesindirectories
我认为这应该可以很好地处理带有空格的文件(虽然不是换行符)但是您可以使用 find -print0
和 xargs -0
来更安全。
话虽如此,您当前对 grep
的 -r
参数的使用是毫无意义的,因为它只会被赋予要操作的目录。此外,您在这里使用 find
是没有意义的,因为 grep -r
直接在此处执行您想要的操作。
只需使用 grep -rls 'my text' .
.