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

uniqコマンドとsortの組み合わせ完全ガイド!初心者でもわかるLinuxの重複削除とユニーク処理

uniqコマンドとsortの組み合わせによるユニーク処理
uniqコマンドとsortの組み合わせによるユニーク処理

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

生徒

「Linuxで同じデータがたくさんあるとき、重複を消す方法ってありますか?」

先生

「ありますよ。uniqコマンドとsortコマンドを組み合わせることで、簡単にユニーク処理ができます。」

生徒

「組み合わせるってどういうことですか?」

先生

「順番に並べてから重複を削除するイメージです。簡単な例で説明していきますね。」

1. uniqコマンドとは?

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

uniqコマンドは、Linuxで重複した行を削除するためのコマンドです。ログファイルやデータ一覧などで、同じ内容が何度も出てくるときに役立ちます。

ただし重要なポイントがあります。uniqは連続した重複しか削除できません。つまり、同じ内容でも離れていると削除されないという特徴があります。

たとえると、同じ商品が並んでいる棚から重複を取り除くようなものです。バラバラに置かれていると見つけられません。

2. sortコマンドとは?

2. sortコマンドとは?
2. sortコマンドとは?

sortコマンドは、データを並び替えるためのコマンドです。アルファベット順や数値順に整列できます。

uniqと一緒に使うことで、バラバラに存在する同じデータをまとめてから削除できます。

つまり、sortで並べる → uniqで削除という流れが基本になります。

3. uniqだけを使った場合

3. uniqだけを使った場合
3. uniqだけを使った場合

まずはuniq単体の動きを確認してみましょう。


cat sample.txt
apple
banana
apple
banana
orange

この状態でuniqを使うとどうなるでしょうか。


uniq sample.txt
apple
banana
apple
banana
orange

結果を見ると、何も変わっていません。これは、同じ文字が連続していないためです。この点が初心者がよくつまずくポイントです。

4. sortとuniqを組み合わせる基本

4. sortとuniqを組み合わせる基本
4. sortとuniqを組み合わせる基本

次に、sortと組み合わせてみましょう。


sort sample.txt
apple
apple
banana
banana
orange

sort sample.txt | uniq
apple
banana
orange

パイプ記号は、前のコマンドの結果を次のコマンドに渡す仕組みです。これにより、並び替えた結果をそのままuniqに渡せます。

これがLinuxの基本テクニックであり、テキスト処理の効率化に欠かせません。

5. 出現回数を数える uniq -c

5. 出現回数を数える uniq -c
5. 出現回数を数える uniq -c

-cオプションを使うと、各行の出現回数を表示できます。


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

これはログ分析やアクセス数の集計などに非常に便利です。

例えば、どのエラーが何回発生したかなどを簡単に確認できます。

6. 重複だけを表示 uniq -d

6. 重複だけを表示 uniq -d
6. 重複だけを表示 uniq -d

-dオプションを使うと、重複しているデータだけを表示できます。


sort sample.txt | uniq -d
apple
banana

重複チェックやデータの確認に役立ちます。

例えば、ユーザーIDの重複確認などの場面で使えます。

7. 重複していない行だけ uniq -u

7. 重複していない行だけ uniq -u
7. 重複していない行だけ uniq -u

-uオプションを使うと、一度しか出てこない行だけを表示します。


sort sample.txt | uniq -u
orange

これは「一意のデータだけ取り出したい」ときに便利です。

8. sortとuniqの実用例

8. sortとuniqの実用例
8. sortとuniqの実用例

実際の業務でよくある例を紹介します。


cat access.log | sort | uniq -c | sort -nr
50 /index.html
30 /login
10 /about

この例では、アクセスログを集計して多い順に並べています。

それぞれのコマンドの役割は次の通りです。

  • sortで並べる
  • uniq -cで数える
  • sort -nrで数の多い順に並べる

このように複数コマンドを組み合わせることで、強力なデータ処理ができます。

9. よくある間違いとポイント

9. よくある間違いとポイント
9. よくある間違いとポイント

初心者がよく間違えるポイントを整理します。

  • uniq単体では重複削除できない場合がある
  • 必ずsortとセットで使うのが基本
  • パイプの使い方を覚えることが重要

特に「sortしてからuniq」という流れは、Linuxのテキスト処理で非常によく使われます。

この考え方を覚えておくと、grepやcutなど他のコマンドとも組み合わせて応用できるようになります。

カテゴリの一覧へ
新着記事
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コマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!