テキストファイルの重複ハッシュデータ処理 - 一意の行を維持し、重複エントリを削除する

テキストファイルの重複ハッシュデータ処理 - 一意の行を維持し、重複エントリを削除する

このフォーラムのおかげで、ファイル名とハッシュ値を含む大容量テキストファイルを処理でき、次のように同じハッシュ値を持つファイルのリストを取得できました。

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_87.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2
file_58.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2
file_89.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2

重複したハッシュを含む行を削除して、次の一意のハッシュを含むテキストファイルを作成したいと思います。

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2

これが完了したら、保存して削除したいファイルを移動して削除するスクリプトを作成できます。

答え1

ファイルがすでにソートされている場合は、次のようにします。

uniq --skip-field=1 file

それ以外の場合は、最初にファイルを並べ替えてから次のものを使用できますuniq

sort -k2 file | uniq --skip-field=1

出力:

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2

関連情報