このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】重複行を1行にまとめて表示する:uniqコマンド

uniq コマンドの概要
「uniq」コマンドは、ソートされたファイルや標準入力からのデータを処理し、重複する連続行を1行にまとめて表示するための Linuxコマンドです。このコマンドは、データの重複を排除するために使用されますが、入力データは事前にソートされている必要があります。「uniq」コマンドは、重複行のカウント、重複行の表示、非重複行の表示など、さまざまなオプションを提供します。
【構文】uniq [オプション] [入力ファイル名] [出力ファイル名]
- [オプション]: 重複行の処理方法を指定するためのオプション。
- [入力ファイル名]: 処理対象のファイル。省略すると標準入力から読み取ります。
- [出力ファイル]: 結果を出力するファイル。省略すると標準出力に表示します。

主なオプションと説明
以下の表に、「uniq」コマンドの主なオプションとその説明をまとめます。
| オプション | 説明 |
|---|---|
-c | 各行の出現回数を行頭に表示します。 |
-d | 重複行のみを表示します。 |
-u | 一度だけ出現する行のみを表示します。 |
コマンドの使用例と解説
以下に、「uniq」コマンドの具体的な使用例とその出力例を示します。
1.サンプルファイルの作成:example.txt
まず、以下の内容を持つサンプルファイル「example.txt」を作成します。
・「nano example.txt」コマンドを実行します。
nanoエディタを起動して、「example.txt」ファイルを作成します。
user01@ubuntu-vm:~$ nano example.txt以下の内容を入力します。
apple
banana
apple
orange
banana
banana
grape
apple入力したら、「Ctrl + S」キーを入力して保存、「Ctrl + X」キーでnanoエディタを終了させます。
2.重複行をまとめて表示
・「sort example.txt | uniq」コマンドを実行します。
sort コマンドでファイルをソートしてから、uniq コマンドで重複行をまとめて表示します。
user01@ubuntu-vm:~$ sort example.txt | uniq
apple
banana
grape
orange3.重複行の出現回数を表示
・「sort example.txt | uniq -c」コマンドを実行します。
各行の出現回数を行頭に表示します。
user01@ubuntu-vm:~$ sort example.txt | uniq -c
3 apple
3 banana
1 grape
1 orange4.重複行のみを表示
・「sort example.txt | uniq -d」コマンドを実行します。
重複する行のみを表示します。
user01@ubuntu-vm:~$ sort example.txt | uniq -d
apple
banan5.一度だけ出現する行を表示
・「sort example.txt | uniq -u」コマンドを実行します。
一度だけ出現する行のみを表示します。
user01@ubuntu-vm:~$ sort example.txt | uniq -u
grape
orange6.演習で作成したファイルの削除
演習で使用したファイルを削除します。
・「rm example.txt」コマンドを実行し、「ls」コマンドで削除されたかどうかを確認します。
user01@ubuntu-vm:~$ rm example.txt
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージックまとめ
この演習を通じて、「uniq」コマンドを使うことで、データの重複を効率的に処理する方法が理解できたかと思います。「uniq」コマンドは、データの整理や重複データの検出・削除に非常に有用です。
