No.046テキスト処理

uniq

ユニーク・重複行の集約

知識レベル 基礎安全に試せる一般ユーザーで使える

隣接した同一行だけをまとめ、重複除去や件数表示を行います。前処理としてsortを組み合わせることが多いです。

答えよく使う形

  1. 重複件数を数えられます
  2. 各行の出現回数を付けます
  3. 重複している行だけを表示します
visitor@goodly: ~

$ sort dup.txt | uniq -c

2 a
1 b
1 c

$ sort file.txt | uniq

$ sort file.txt | uniq -c

覚える順番の中でLPIC-1・28 駅め / 106

どんなコマンド?

こんなときに

重複行をまとめたい時、頻度を数えたい時、一覧の一意化をしたい時に使います。

uniqは、連続して並んでいる同一行をまとめるコマンドです。重要なのは『隣接した重複だけを扱う』点で、離れた位置にある同じ行はそのまま残ります。

そのため、全体の重複を整理したい時は通常sortと組み合わせます。sort | uniq、sort | uniq -c、sort | uniq -dといった形は頻出です。ログ中の頻出語や重複設定の確認にも便利です。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ uniq

使用例と実行結果

行を押すとコピーできます。

2 a
1 b
1 c
重複件数を数えられます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 1

ゲームで確かめる

つまずいたとき

離れた重複が消えない

原因uniqは隣接重複だけを扱います。

こうする先にsortして同値行を寄せます。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。処理に成功しました。
  • >0読取失敗などで失敗しました。

気をつけることと入れ方

気をつけること

危険度は低いですが、並んでいない重複を消してくれると誤解しやすい点に注意してください。

確かめた環境2026-04-09 に確認

よくある質問

sortなしでも使えますか。

隣接重複だけを見るなら使えますが、全体の一意化には通常sortが必要です。

資格試験では

  • LinuC レベル1大事1.03.2 フィルタを使ったテキストストリームの処理
  • LPIC-1大事103.2 フィルタを使ったテキストストリームの処理
  • 共通基礎大事Linuxコマンド基礎

uniq を最後まで読みました。

Linux コマンド辞典に戻る130 / 144

Goodly のメニュー