特定の文字列が入ったファイルだけ一括で削除するコマンドを教えてください。
boxというフォルダの中に約12万のファイルがあります。
このフォルダの容量は約460MBです。
この12万のファイルのうち約10万のファイルの本文に 0,0, という文字列が含まれています。
これら10万の不要なファイルを削除するために
本文に0,0,と含まれるファイルを一括削除するように命令を出したいのですが
特定の文字列が含まれたファイルのみ削除するコマンドはありますでしょうか?
よろしくお願い致します。
10万本もファイルがあると、ファイル名を引数で指定してもパンクしてしまうので、
とりあえず、
% find . -exec grep -l "0,0," {} +
か
% ls|xargs grep -l "0,0,"
で"0,0,"が本文中に含まれたファイルを全部ピックアップしますから、
これに xargs をつないで、
% find . -exec grep -l "0,0," {} +|xargs rm -fr % ls|xargs grep -l "0,0,"|xargs rm -fr
自分だったら12万本のファイルのなかの必要な2万本をどうやってピックアップするか
考えますけどねぇ。いきなり消すのは怖くてできません。
urlはダミーです。