
プログラムによって生成された複数の重複ファイルを含むディレクトリがあります。重複するエントリは同じ名前ですが(番号を除く)、同じ名前のファイルがすべて重複するわけではありません。
重複を排除する簡単なコマンドは何ですか(理想的にはGNU coreutilsから1行に制限されています)スクリプトに関する質問)?
ファイル名の例:
parra1998.pdf parra1998(1).pdf parra1998(2).pdf
答え1
迅速で汚れた解決策は、ファイルをハッシュし、何度も表示されるハッシュを検索し、ファイル名番号のハッシュを削除することです。
たとえば、
sha1sum * > files.sha1sum cat files.sha1sum | cut -f1 -d" " | sort | uniq -c | grep -v " 1 " | sed --regexp-extended 's/^[^0-9]+[0-9] //g' | xargs -n1 -I§ grep § files.sha1sum | sed --regexp-extended 's/^[^ ]+ +//g' | grep -v '(' | xargs -n1 -I§ rm "§"