我有一系列 .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 {} \;