我需要一种在文件名中可能包含空格的文件列表上运行grep的方法。在没有空格的文件列表中,它非常简单直接。另外,我知道如何处理find和xargs文件名中的空格。我只是在寻找一种grep
与 -print0 命令一起使用的方法。
我正在寻找文件中的文本,而不是文件名中的文本...
这列出了所有文件:
find * -print 0 | xargs -0 -i{} echo {}
Run Code Online (Sandbox Code Playgroud)
但是说我必须在两者之间执行 grep (或其他一些命令)。
这列出了文件中包含“howdy doody”的文件:
find * | xargs grep -l "howdy doody" | xargs -i{} echo {}
Run Code Online (Sandbox Code Playgroud)
这不起作用,grep
不知道如何识别空终止行。我错过了grep
手册页中的某些内容吗?
find * -print0 | xargs grep -l "howdy doody" | xargs -0 -i{} echo {}
Run Code Online (Sandbox Code Playgroud) command-line ×1