html
各フォルダには、ファイルを含む数千のフォルダがあります。 grepがexample.com
ファイル内の一致するものを見つけられない場合は、フォルダ全体を削除したいと思いますhtml
。
一致しないファイルを削除する方法を知っています。たとえば、次のようになります。
grep -ZrLIi "example.com" "/dir/htmls/" | xargs -0 -I {} rm -f --
しかし、ファイル自体を削除するわけではありません。ファイルを含むフォルダ全体(他のファイルを含む)を削除するにはどうすればよいですか?
答え1
grepでPOSIX以外のフラグを使用しているので、GNU coreutilsがあるとします。
grep -ZrLIiF "example.com" /dir/htmls | xargs -0 dirname -z | sort -zu | xargs -0 echo rm -rf
出力が正しい場合は、echo
古いコンテンツを削除してください。また、正規表現一致ではなく文字一致を実行するオプションrm
も追加しました。-F