- Pythonを使用した場合の例:
def remove_duplicates(filename):
lines_seen = set() # 重複行を追跡するためのセット
output_lines = [] # 重複行を削除した後の行を格納するリスト
with open(filename, 'r') as file:
for line in file:
if line not in lines_seen:
output_lines.append(line)
lines_seen.add(line)
with open(filename, 'w') as file:
file.writelines(output_lines)
# 使用例:
remove_duplicates('ファイル名.txt')
- Bashを使用した場合の例:
#!/bin/bash
awk '!seen[$0]++' ファイル名.txt > 一時ファイル.txt
mv 一時ファイル.txt ファイル名.txt
これらのコード例では、ファイルを行ごとに読み取り、重複行を追跡します。重複行が見つかった場合、それを出力リストに追加せずに無視します。最後に、出力リストを元のファイルに書き戻します。
重要な点は、これらの方法はソートを必要とせず、ファイル内の順序を保持します。したがって、元のファイルの順序が重要な場合でも問題ありません。
ただし、大量のデータが含まれる場合や、他の特定の要件がある場合は、より効率的なアプローチが必要になるかもしれません。それには、データベースや専門のデータ処理ツールを使用することがあります。
以上が、重複エントリをソートせずにファイルから削除する方法の例です。必要に応じて、これらの例をカスタマイズして使用してください。