カテゴリ: Linux基礎 更新日: 2026/05/18

uniqコマンドで出現回数を数える方法を徹底解説!Linux初心者でもわかる重複行カウントの基本

uniqコマンドで出現回数を数える方法
uniqコマンドで出現回数を数える方法

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

生徒

「同じデータが何回出てきたかを数えたいんですが、Linuxでできますか?」

先生

「できますよ。uniqコマンドを使うと、重複している行の出現回数を数えられます。」

生徒

「でも難しそうです。数字を数えるってどうやるんですか?」

先生

「シンプルなオプションを使うだけなので簡単です。順番に見ていきましょう。」

1. uniqコマンドとは?

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

uniqコマンドは、Linuxで重複している行をまとめたり、出現回数を数えたりするためのコマンドです。

例えば、ログファイルやデータ一覧の中で「同じ内容が何回出てきたか」を知りたいときに便利です。

身近な例でいうと、アンケート結果で「同じ回答が何人いたか」を集計するようなイメージです。

2. 出現回数を数える基本の使い方(-cオプション)

2. 出現回数を数える基本の使い方(-cオプション)
2. 出現回数を数える基本の使い方(-cオプション)

出現回数を数えるには、-cオプションを使います。


uniq -c ファイル名

例として、以下のようなテキストファイルを用意します。


cat sample.txt
apple
apple
banana
banana
banana
orange

このファイルに対して実行すると、次のようになります。


uniq -c sample.txt
      2 apple
      3 banana
      1 orange

左側の数字が「出現回数」です。つまりappleは2回、bananaは3回出てきたという意味になります。

3. 注意点:sortコマンドと一緒に使う理由

3. 注意点:sortコマンドと一緒に使う理由
3. 注意点:sortコマンドと一緒に使う理由

uniqコマンドには重要な特徴があります。それは連続している重複しかまとめないという点です。

例えば、順番がバラバラな場合は正しくカウントできません。


cat sample2.txt
apple
banana
apple
banana
banana

uniq -c sample2.txt
      1 apple
      1 banana
      1 apple
      2 banana

このように分かれてしまいます。そこで使うのがsortコマンドです。


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

sortは「並び替え」を行うコマンドです。同じものをまとめてからuniqに渡すことで、正しくカウントできます。

4. 出現回数順に並び替える方法

4. 出現回数順に並び替える方法
4. 出現回数順に並び替える方法

カウントした結果を「多い順」や「少ない順」に並び替えたい場合は、さらにsortを組み合わせます。


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

-nは数値順で並び替えるオプションです。

多い順にする場合は次のようにします。


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

-rは逆順の意味です。つまり多い順に並びます。

5. よく使うオプションの組み合わせ

5. よく使うオプションの組み合わせ
5. よく使うオプションの組み合わせ

uniqコマンドは他のオプションと組み合わせることで、さらに便利になります。

重複している行だけ表示する場合です。


sort sample.txt | uniq -c | grep -v " 1 "
      2 apple
      3 banana

grepは文字検索コマンドで、「1回しか出ていないもの」を除外しています。

逆に1回だけ出現したものを確認する場合です。


sort sample.txt | uniq -c | grep " 1 "
      1 orange

このように組み合わせることで、柔軟にデータ分析ができます。

6. ログ解析での活用例

6. ログ解析での活用例
6. ログ解析での活用例

実際の現場では、ログファイルの分析によく使われます。

例えば、アクセスログの中でどのページが多く見られているかを調べることができます。


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

このように、どのページが人気なのかが一目で分かります。

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

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

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

1つ目は並び替えをしていないことです。

sortを使わないと正しくカウントできません。

2つ目はスペースの見方です。

uniq -cの結果は数字の前に空白が入りますが、これは表示の仕様です。

焦らずに結果をよく確認することが大切です。

8. uniqコマンドで出現回数を数える重要ポイント

8. uniqコマンドで出現回数を数える重要ポイント
8. uniqコマンドで出現回数を数える重要ポイント

uniqコマンドは、Linuxのテキスト処理において非常に重要な基本コマンドです。

特に-cオプションを使うことで、データの傾向や頻度を簡単に把握できます。

さらにsortと組み合わせることで、より正確で実用的な結果が得られます。

コマンドライン操作に慣れていない方でも、今回紹介した例をそのまま試すことで理解が深まります。

まとめ

まとめ
まとめ

今回はLinuxの基本コマンドの一つであるuniqコマンドを使って、テキストデータやログファイルの中に含まれる重複行の出現回数を数える方法について詳しく解説しました。uniqコマンドはシンプルな構文でありながら、データ分析やログ解析において非常に強力な役割を果たします。特にuniqコマンドのcオプションを使うことで、同じ内容が何回出現しているのかを簡単に数値として可視化できるため、初心者でも扱いやすい点が大きな特徴です。

また、uniqコマンドを正しく活用するためには、sortコマンドとの組み合わせが重要であることも学びました。uniqは連続した行しかまとめることができないため、事前にsortで並び替えを行うことで、同じデータを一箇所に集めて正確なカウントを実現できます。この流れはLinuxのテキスト処理における基本パターンであり、今後の学習でも頻繁に登場する重要な考え方です。

さらに、sortとuniqを組み合わせたあとに再度sortを行うことで、出現回数の多い順や少ない順に並び替える方法も理解しました。これにより、単に数を数えるだけでなく、どのデータが多く使われているのか、どの値が重要なのかといった傾向分析まで行えるようになります。ログファイル解析やアクセス解析など、実務に近い場面でもすぐに応用できる知識です。

grepコマンドと組み合わせることで、特定の条件に一致するデータだけを抽出する方法も確認しました。例えば一回しか出現していない行だけを表示したり、逆に複数回出現している行だけを抽出することで、データの中から必要な情報を効率よく見つけることができます。このようにLinuxコマンドは単体で使うだけでなく、パイプを使って連携させることで、より高度な処理が可能になります。

実際の現場では、アクセスログやエラーログの分析にuniqコマンドがよく使われます。どのページにアクセスが集中しているのか、どのエラーが頻発しているのかを素早く把握することができるため、システム運用やトラブルシューティングにおいて欠かせないスキルとなります。初心者のうちからこのような基本コマンドの使い方に慣れておくことで、実務でもスムーズに対応できる力が身につきます。

今回紹介した内容は、Linuxコマンドの中でも特に重要な基礎知識にあたります。uniqコマンドの出現回数カウント、sortコマンドによる並び替え、grepによるフィルタリングといった組み合わせは、テキスト処理の基本パターンとしてしっかり覚えておきましょう。繰り返しコマンドを実行して結果を確認することで、自然と理解が深まり、応用力も高まっていきます。

以下に、今回学んだ内容を振り返るための簡単なサンプルをまとめます。実際に手を動かして試すことで、理解がより確実になります。


cat sample.txt
apple
apple
banana
banana
banana
orange

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

このように、Linuxのuniqコマンドとsortコマンドを組み合わせることで、データの出現回数を効率よく集計し、さらに並び替えて見やすく表示することができます。シンプルなコマンドの組み合わせですが、実用性は非常に高く、日々の作業効率を大きく向上させることができます。:contentReference[oaicite:0]{index=0}

先生と生徒の振り返り会話

生徒

uniqコマンドを使うと同じ行をまとめて数えられるというのがよく分かりました。特にcオプションで回数が表示されるのが便利ですね。

先生

その通りです。ログ解析やデータ集計ではとてもよく使われる基本テクニックです。まずはsortと組み合わせることをしっかり覚えましょう。

生徒

最初はuniqだけでやってしまってうまく数えられなかった理由も理解できました。並び替えが重要なんですね。

先生

はい。Linuxコマンドは単体だけでなく、複数のコマンドをつなげて使うことで力を発揮します。パイプの使い方にも慣れていきましょう。

生徒

さらにsortで並び替えることで多い順や少ない順にできるのも面白かったです。データ分析にも使えそうです。

先生

その視点はとても大切です。コマンドを覚えるだけでなく、どんな場面で使えるかを考えることで理解が深まります。

生徒

これからログファイルでも試してみます。実際に使って慣れていきたいです。

先生

ぜひ実践してください。繰り返し使うことで自然と身につきますし、Linuxの操作にも自信が持てるようになります。

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
patch -Rオプションの使い方を完全ガイド!初心者でもわかるLinuxでパッチを元に戻す方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ディスクとファイルシステム管理
dfコマンドの使い方を完全ガイド!初心者でもわかるLinuxのディスク使用量確認方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説