Linuxで重複した行を1つのコピーとして出力する方法


  1. uniqコマンドを使用する方法: uniqコマンドは、連続する重複した行を削除するために使用されますが、オプションを指定することで重複した行を1つのコピーとして出力することもできます。
sort file.txt | uniq

上記の例では、ファイルfile.txtの内容をソートしてからuniqコマンドを実行しています。重複した行は1つのコピーとして出力されます。

  1. awkコマンドを使用する方法: awkコマンドを使用すると、重複した行を1つのコピーとして出力することもできます。
awk '!seen[$0]++' file.txt

上記の例では、file.txtの内容を走査し、重複した行を記録している配列seenを使用して重複をチェックしています。重複していない行のみが出力されます。

  1. Pythonスクリプトを使用する方法: Pythonを使用しても重複した行を1つのコピーとして出力することができます。以下はPythonのコード例です。
lines = set()
with open('file.txt', 'r') as file:
    for line in file:
        line = line.strip()
        if line not in lines:
            lines.add(line)
            print(line)

上記の例では、ファイルfile.txtを行ごとに読み込み、重複した行を記録するためにセットを使用しています。重複していない行のみが出力されます。

これらはLinuxで重複した行を1つのコピーとして出力するためのいくつかの一般的な方法です。使用する方法やコードは、環境や要件によって異なる場合があります。