Linux

包含空格的 grepped 文件的 xargs 問題

  • April 8, 2019

我有一系列 .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 人,但我只是不明白為什麼 xargs 沒有將文件名 + PATH 拾取到文件並執行 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

嘗試:

xargs -d '\n' less

xargs 的輸入,在您的情況下不是空字元終止

不需要管道,find僅使用 with-name而不是grep-exec而不是xargs

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

引用自:https://unix.stackexchange.com/questions/511240