grep 和包含空格的目录

jej*_*uba 2 shell grep filenames command-substitution

我想在目录和子目录中搜索包含字符串关联的所有文件(例如,这里的文件应该包含 'arthur' AND ('déni' OR 'deni'))。经过一番搜索,我想出了以下代码:

egrep -li 'arthur' `egrep -lir 'déni|deni' /path/to/files/`
Run Code Online (Sandbox Code Playgroud)

问题是我收到错误消息,因为许多文件和目录都包含空格。有没有办法解决这个问题?

Gra*_*eme 5

使用 GNU grep,您可以-Z在管道到之前使用空分隔文件名的选项xargs

egrep -lirZ 'déni|deni' /path/to/files/ | xargs -0 egrep -li 'arthur'
Run Code Online (Sandbox Code Playgroud)