次のような名前の、数千のファイルを含むディレクトリがあります。
filename.ext
filename (1).ext
filename (2).ext
otherfile.ext
otherfile (1).ext
etc.
括弧で囲まれた番号が付いたファイルのほとんどは、元のファイルと重複していますが、そうでない場合もあります。
元のファイルを保持し、重複を削除し、異なるファイルを失わないようにするにはどうすればよいですか?
私はできることを知っていますがrm *\).ext
、それは明らかにファイルが元のファイルと一致することを確認しません。
私はOSXを使用しているので、Linuxmd5
のようmd5sum
に機能するプログラムがありますが、ハッシュは行の先頭ではなく末尾に配置されます。awkスクリプトを使用して、の出力を取得し、md5 *.ext | awk 'some script'
md5で重複を見つけて削除できると考えていましたが、コマンドラインが長すぎます(bash: /sbin/md5: Argument list too long
)。
そして、私はスクリプトに何を書くべきかわかりません。私はこれで物事を配列に格納することを考えていました:
awk '{a[$NF]++} a[$NF]>1{sub(/).*/,""); sub(/.*(/,""); system("rm " $0);}'
しかし、それはいつも私のオリジナルを削除するようです。
私は何が間違っているのですか?どうすれば正しくできますか?
ありがとう。