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

uniq -dオプションの使い方を完全ガイド!重複している行だけを表示するLinuxテキスト処理入門

uniq -dオプション|重複している行だけを表示する
uniq -dオプション|重複している行だけを表示する

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

生徒

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

先生

「その場合はuniqコマンドが便利ですよ。特に-dオプションを使うと重複している行だけを表示できます。」

生徒

「コマンドって難しそうです。パソコンをあまり触ったことがなくても大丈夫ですか?」

先生

「大丈夫です。紙の名簿をチェックする感覚で考えると、とても分かりやすいですよ。」

1. uniqコマンドとは?

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

uniqコマンドは、Linuxでテキストデータの行を比較して重複を見つけるための基本コマンドです。ログファイル、名簿データ、一覧表など、同じ行が何度も出てくる場面で活躍します。

Windowsでいうと、Excelで「同じ行を探す」作業に近いイメージです。ただし、uniqはターミナル(黒い画面)で文字だけの命令として実行します。その分、大量のデータでも一瞬で処理できるのが特徴です。

2. uniq -dオプションの役割

2. uniq -dオプションの役割
2. uniq -dオプションの役割

-dオプションは、「重複している行だけを表示する」ための指定です。ここでいう重複とは、同じ内容の行が2回以上連続して並んでいる状態を指します。

たとえば、出席簿で同じ名前が続けて書かれていたら「おかしいな」と気づきますよね。uniq -dは、その「おかしい部分」だけを抜き出して見せてくれる道具です。

3. uniqを使う前に知っておく大事なポイント

3. uniqを使う前に知っておく大事なポイント
3. uniqを使う前に知っておく大事なポイント

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

つまり、バラバラの順番で同じ行が出てくる場合、そのままでは見つけられません。そのため、実際の現場ではsortコマンドと組み合わせて使うことがほとんどです。sortは行を並び替えるコマンドで、五十音順やアルファベット順に整理する役割があります。

4. 基本例:重複行だけを表示する

4. 基本例:重複行だけを表示する
4. 基本例:重複行だけを表示する

まずは、シンプルなテキストファイルを例に見てみましょう。data.txtというファイルに、同じ行が続いている状態を想定します。


uniq -d data.txt
apple
orange

この結果は、「apple」と「orange」が2回以上続けて書かれていたことを意味します。1回しか出てこない行は表示されません。

5. sortと組み合わせて使う実践例

5. sortと組み合わせて使う実践例
5. sortと組み合わせて使う実践例

次は、順番がバラバラなデータを扱う場合です。このときは、sortとパイプ(|)を使います。パイプは「前の結果を次に渡す」という意味の記号です。


sort data.txt | uniq -d
apple
orange

この方法なら、同じ行が離れていても問題ありません。まず並び替えてから重複チェックをするので、実務で最もよく使われる形です。

6. uniq -d と -c を組み合わせる

6. uniq -d と -c を組み合わせる
6. uniq -d と -c を組み合わせる

重複している行が「何回」出てきたのかも知りたい場合は、-cオプションを組み合わせます。-cは行の出現回数を表示する指定です。


sort data.txt | uniq -cd
2 apple
3 orange

左側の数字が出現回数です。これを見ることで、「どの行が、どれくらい重複しているか」が一目で分かります。

7. uniq -dが役立つ具体的な場面

7. uniq -dが役立つ具体的な場面
7. uniq -dが役立つ具体的な場面

uniq -dは、ログ解析、ユーザー一覧の確認、アクセス履歴のチェックなど、同じ情報が重なっていないか確認したい場面でよく使われます。

たとえば、ユーザー名の一覧から重複登録を見つけたり、同じエラーが何度も出ていないかを確認したりする用途があります。目で探すと大変な作業を、一瞬で終わらせてくれるのがLinuxコマンドの強みです。

8. uniq -dと似たコマンドとの違い

8. uniq -dと似たコマンドとの違い
8. uniq -dと似たコマンドとの違い

uniqは「重複を見つける」ことに特化したコマンドです。一方で、grepは「文字を探す」ためのコマンド、sortは「並び替える」ためのコマンドです。

それぞれ役割が違うので、組み合わせて使うことで初めて力を発揮します。uniq -dは、その中でも重複チェック専用の便利な道具だと覚えておくと理解しやすくなります。

関連記事:
カテゴリの一覧へ
新着記事
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で文字列を検索する基本をやさしく解説!