カテゴリ: Linux基礎 更新日: 2026/09/03

uniqコマンドで特定の重複だけを抽出する方法!初心者でもわかるLinuxの重複データ処理

uniqコマンドで特定の重複だけを抽出する方法
uniqコマンドで特定の重複だけを抽出する方法

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

生徒

「同じ行が何回も出てくるデータがあるんですが、重複しているものだけ取り出すことはできますか?」

先生

「できますよ。Linuxではuniqコマンドを使うことで、重複した行だけを抽出できます。」

生徒

「重複しているものだけって、どういう意味ですか?」

先生

「同じ内容が連続している行のうち、重複している部分だけを取り出すという意味です。具体的な例で説明しますね。」

1. uniqコマンドとは

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

uniqコマンドは、Linuxで重複した行を整理するための基本的なコマンドです。

たとえば、同じ名前や同じデータが何度も並んでいるときに、重複を削除したり、重複しているものだけを取り出したりできます。

イメージとしては、「同じものが続いている部分を見つけて整理する道具」です。

ただし重要なポイントとして、連続している重複しか判定できないという特徴があります。

2. 重複だけを抽出する基本オプション

2. 重複だけを抽出する基本オプション
2. 重複だけを抽出する基本オプション

重複している行だけを表示したい場合は、-dオプションを使います。

-dは「duplicate」の略で、「重複しているものだけ」という意味です。


uniq -d sample.txt
apple
banana

この結果は、「複数回出てきたデータだけ」を表示しています。

つまり、一回しか出てこない行は表示されません。

3. サンプルで理解する重複抽出

3. サンプルで理解する重複抽出
3. サンプルで理解する重複抽出

次のようなテキストファイルを用意します。


cat sample.txt
apple
apple
banana
banana
orange

この状態でuniq -dを実行すると、重複している「apple」と「banana」だけが表示されます。


uniq -d sample.txt
apple
banana

ここで「orange」は一回しか出てこないため、表示されません。

4. sortコマンドと組み合わせる理由

4. sortコマンドと組み合わせる理由
4. sortコマンドと組み合わせる理由

uniqコマンドは「連続している行」しか重複と判断できません。

そのため、順番がバラバラだと正しく動作しません。


cat sample.txt
apple
banana
apple
banana

この状態でuniq -dを使っても、重複として認識されません。

そこで使うのがsortコマンドです。

sortは、データを並び替えるコマンドで、同じ行をまとめてくれます。


sort sample.txt | uniq -d
apple
banana

これで、正しく重複だけを抽出できます。

5. 出現回数と一緒に確認する方法

5. 出現回数と一緒に確認する方法
5. 出現回数と一緒に確認する方法

重複しているだけでなく、「何回出てきたか」も知りたい場合は、-cオプションを使います。


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

このように、左側に回数が表示されます。

数字が大きいほど、たくさん重複していることがわかります。

6. 重複していない行を抽出する方法

6. 重複していない行を抽出する方法
6. 重複していない行を抽出する方法

逆に、「重複していない行だけ」を取り出したい場合は、-uオプションを使います。


sort sample.txt | uniq -u
orange

-uは「unique」の意味で、「一度しか出てこない行」を表示します。

データの中で、珍しい値や一度だけ出現するものを探すときに便利です。

7. よくある使い方のパターン

7. よくある使い方のパターン
7. よくある使い方のパターン

実際の作業では、以下のような組み合わせがよく使われます。

重複だけを抽出


sort data.txt | uniq -d
apple
banana

重複回数を確認


sort data.txt | uniq -c
2 apple
3 banana

重複していないものだけ抽出


sort data.txt | uniq -u
orange

このように、sortuniqをセットで覚えると、データ整理がとても楽になります。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初心者がよく間違えるポイントは次の2つです。

  • sortを使わずにuniqを実行してしまう
  • 連続していない重複が検出されない理由がわからない

uniqは「隣り合っている行」しか比較しません。

そのため、必ずsortで並び替えることが大切です。

これは「同じものを並べてから数える」というイメージで覚えると理解しやすいです。

カテゴリの一覧へ
新着記事
New1
システム情報・プロセス管理
ps -Aオプション|すべてのプロセスを表示する
New2
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
New3
ファイル・ディレクトリ操作
rm -fオプションとは?Linuxで存在しないファイルでもエラーを出さず強制削除する方法
New4
演算と比較
シェルスクリプトでファイル存在チェックを行う比較演算子まとめ
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!