xargs 包含空格的 grep 文件问题

xargs 包含空格的 grep 文件问题

我有一系列 .html 文件,它们之间都包含空格。

我需要的是使用 find 与 grep 结合使用来定位文件,如果找到匹配项,基本上我只希望 xargs 使用 less 在视图模式下打开它。没有什么花哨。

这就是我尝试过的

pietro@scum:~/Downloads$ find |grep 'Register\sfor\srehousing.html' |xargs -trE  less
echo ./Register for rehousing.html 
./Register for rehousing.html

pietro@scum:~/Downloads$ find |grep 'Register\sfor\srehousing.html' |xargs -0 less
./Register for rehousing.html
: No such file or directory

我已经浏览了 xargs man,但我只是不明白为什么 xargs 不选择文件名+文件路径并执行 less 命令。

该文件确实存在,如下所示

pietro@scum:~/Downloads$ ls -l |grep 'Register\sfor\srehousing.html' 
-rw-rw-r-- 1 pietro pietro    764611 Mar 14 14:44 Register for rehousing.html

答案1

尝试:

xargs -d '\n' less

xargs 的输入,在您的情况下不是以空字符结尾

答案2

不需要管道,find仅使用 with-name代替grep-exec代替xargs

find . -name 'Register for rehousing.html' -exec less {} \;

相关内容