uniq の使い方

連続する重複行をまとめる

書き方

uniq [-c] [-d]

sort と組み合わせて使います。-c で回数付き。

よく使うオプション

オプション意味
-cそれぞれの行が何回続いたかを前に付ける
-d重なった行だけを出す
-u重ならなかった行だけを出す
-i大文字と小文字を区別しない

例

$ sort fruits.txt | uniq

並べ替えてから重なりを 1 つにします。

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

それぞれが何回出てきたかを数えます。

$ awk '{print $1}' access_log | sort | uniq -c | sort -nr | head

アクセスの多い IP アドレスの上位 10 件を出します。集計の決まった形です。

よくある間違い・注意

  • uniq がまとめるのは、隣り合った同じ行だけです。先に sort しないと、離れた同じ行は別々に数えられます。

実際に打って練習する

Linux レベル1 コースの Lv21「重なりを数える uniq」で覚えます(第2章 宝探し(検索とテキスト処理))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る