カテゴリ: Linuxコマンド集 更新日: 2026/03/27

uniqコマンドとは?初心者でもわかるLinuxで重複行を処理する基本

uniqコマンドとは?Linuxで重複行を処理する基本
uniqコマンドとは?Linuxで重複行を処理する基本

先生と生徒の会話形式で理解しよう

生徒

「Linuxで同じ行が何回も出てくるデータを、きれいに整理したいんですが、どうすればいいですか?」

先生

「そういうときは uniq コマンドを使うと、重複した行をまとめたり削除したりできますよ。」

生徒

「難しそうです…。パソコン初心者でも使えますか?」

先生

「大丈夫です。メモ帳の文章を整理する感覚で使えるので、順番に説明しますね。」

1. uniqコマンドとは?

1. uniqコマンドとは?
1. uniqコマンドとは?

uniqコマンドは、Linuxで連続して重複している行を処理するための基本コマンドです。ログファイルや一覧データなどで、同じ内容の行が何度も並んでいる場合に、それを一つにまとめたり、重複だけを取り出したりできます。

イメージとしては、ノートに同じ言葉を何度も書いてしまったときに、同じ行を一つにまとめて読みやすくする作業に近いです。Windowsの表計算ソフトで「重複の削除」をする感覚だと考えるとわかりやすいでしょう。

2. uniqを使う前に知っておきたい重要なポイント

2. uniqを使う前に知っておきたい重要なポイント
2. uniqを使う前に知っておきたい重要なポイント

uniqコマンドには、とても大切な前提条件があります。それは、同じ行が連続して並んでいないと重複として判断されないという点です。

そのため、一般的には sort コマンドと組み合わせて使います。sortは行を並び替えるコマンドで、同じ行をまとめてくれます。この二つをセットで覚えると、テキスト処理が一気に楽になります。

3. 基本的な使い方:重複行をまとめる

3. 基本的な使い方:重複行をまとめる
3. 基本的な使い方:重複行をまとめる

まずは、もっとも基本的な使い方を見てみましょう。次のようなテキストファイルがあるとします。


cat fruits.txt
apple
apple
banana
banana
banana
orange

このファイルに対して uniq を使うと、連続した重複行が一つにまとめられます。


uniq fruits.txt
apple
banana
orange

同じ単語が何回出てきても、連続していれば一行に整理されるのが特徴です。

4. sortとuniqを組み合わせて使う方法

4. sortとuniqを組み合わせて使う方法
4. sortとuniqを組み合わせて使う方法

もし同じ行がバラバラの場所に書かれている場合、そのままでは uniq は正しく動きません。そこで sort と組み合わせます。


sort fruits.txt | uniq
apple
banana
orange

このようにパイプ(|)を使うことで、「並び替えた結果をそのまま uniq に渡す」という流れを作れます。パイプは「次の作業に渡すホース」のようなものだと考えると理解しやすいです。

5. 重複回数を数える:-cオプション

5. 重複回数を数える:-cオプション
5. 重複回数を数える:-cオプション

-cオプションを使うと、各行が何回出てきたのかを数えて表示できます。ログ解析などで非常によく使われます。


sort fruits.txt | uniq -c
2 apple
3 banana
1 orange

左側の数字が出現回数です。「どのデータが多いのか」を確認したいときに便利です。

6. 重複行だけ・重複していない行だけを表示する

6. 重複行だけ・重複していない行だけを表示する
6. 重複行だけ・重複していない行だけを表示する

uniqには、条件に応じて行を選び出す機能もあります。

重複している行だけを表示したい場合は -d を使います。


sort fruits.txt | uniq -d
apple
banana

逆に、一度しか出てこない行だけを表示したい場合は -u を使います。


sort fruits.txt | uniq -u
orange

データの中から「例外」を見つけたいときに役立ちます。

7. uniqと似たコマンドとの違い

7. uniqと似たコマンドとの違い
7. uniqと似たコマンドとの違い

uniqは重複行の処理に特化したコマンドですが、似た目的で使われるものに sortgrep があります。

sortは並び替えが目的で、grepは特定の文字を含む行を探すコマンドです。uniqは「同じ行かどうか」を基準に処理する点が大きな違いです。

それぞれ役割が違うため、組み合わせて使うことでLinuxのテキスト処理はとても強力になります。

8. 初心者がつまずきやすい注意点

8. 初心者がつまずきやすい注意点
8. 初心者がつまずきやすい注意点

初心者がよく混乱するのが、「uniqを使ったのに重複が消えない」というケースです。その原因の多くは、行が連続していないことにあります。

また、見た目が同じでも、空白やタブが違うと別の行として扱われます。データ処理では「見えない違い」が結果に影響することを覚えておくと安心です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ソートとユニーク処理
sortコマンドで数値順に並べ替える方法を完全ガイド!初心者でもわかるLinuxのソートの基本
New2
ファイル・ディレクトリ操作
stat --versionの使い方を完全解説!Linux初心者でもわかるバージョン確認の基本
New3
ファイル・ディレクトリ操作
touch --versionオプションの使い方を完全ガイド!初心者でもわかるバージョン確認方法
New4
ソートとユニーク処理
sortコマンドの基本!初心者でもわかるLinuxでテキストを並べ替える方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!