Grep

grep 匹配的引用文件

  • August 2, 2018

grep 的手冊頁顯示

"grep -lZ outputs a zero byte after each file name instead of the usual newline"

但在我的情況下,輸出中的文件仍然需要引號。為了使它工作:

/usr/bin/grep -rlZ 'Not Found'|xargs -0 rm

文件名中-w的.like-webkit-stuff.html不應被解釋為 rm 的選項。所以我目前正在這樣做:

/usr/bin/grep -rlZ 'Not Found'|\
xargs -0 -I{} find . -type f -name {} -print0 | xargs -0 rm

那效率不高。有沒有“更好-print0”的 grep 版本?

你會怎麼做?

你可以使用

/usr/bin/grep -rlZ 'Not Found' | xargs -0 -r rm --

--阻止實用程序在之後將任何內容解釋為選項,或者,

/usr/bin/grep -rlZ 'Not Found' . | xargs -0 -r rm

這將導致grep在所有文件的路徑名前加上./. 如果沒有輸入(即,如果沒有文件包含字元串),則make-r選項不執行命令。xargs``xargs grep

我個人可能會使用find

find . -type f -exec grep -qF 'Not found' {} ';' -delete

(我認為做同樣的事情:遞歸刪除包含字元串的文件Not found

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