grepに一致する参照ファイル

grepに一致する参照ファイル

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ファイル名の-webkit-stuff.htmlrm のオプションとして解釈されるべきではありません。だから私は現在これをやっています:

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

これはあまり効率的ではありません。-print0grepの「より良い」バージョンはありますか?

あなたは何をしますか?

ベストアンサー1

使用できる

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

--ユーティリティが何もオプションとして解釈できないようにする場合

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

これにより、grepすべてのファイルのパス名に接頭辞が付けられます./-rxargsxargs いいえ入力が受信されない場合grep(つまり、文字列を含むファイルがない場合)は、コマンドが実行されます。

個人的には以下を使用できますfind

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

(同じことをしていると思います。文字列を含むファイルを再帰的に削除しますNot found。)

おすすめ記事