uniq ユニーク

英語表記uniq

日本語表記重複行の集約

正式名称uniq

危険度安全

What does it mean?

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

Command Quest

uniq を今日の道具にする

隣接した同一行だけをまとめ、重複除去や件数表示を行います。前...

$ uniq [オプション]... [入力 [出力]]
関連用語0
次のコマンド0
FAQ1
参照3

概要

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

基本構文

uniq [オプション]... [入力 [出力]]

詳細解説

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

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

このコマンドを使う場面

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

まず安全に試す方法

1. printf 'ananbnan' > dup.txt
2. uniq dup.txt
3. sort dup.txt | uniq -c

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. sortとuniq -cを組み合わせて頻度表を作ります。

資格試験との関連

  • LinuC レベル1
    範囲: 1.03.2 フィルタを使ったテキストストリームの処理
    根拠: official
    uniqは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
  • LPIC-1
    範囲: 103.2 フィルタを使ったテキストストリームの処理
    根拠: official
    uniqは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    uniqは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -c
    各行の出現回数を付けます。
    sort file.txt | uniq -c
  • -d
    重複している行だけを表示します。
    sort file.txt | uniq -d
  • -u
    一意な行だけを表示します。
    sort file.txt | uniq -u

実行結果サンプル

  • sort dup.txt | uniq -c
    2 a
    1 b
    1 c

戻り値コード

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

使用例

  • sort file.txt | uniq
  • sort file.txt | uniq -c
  • sort file.txt | uniq -d

よくあるエラー

  • 離れた重複が消えない
    原因: uniqは隣接重複だけを扱います。
    対処: 先にsortして同値行を寄せます。

導入・互換性情報

POSIXで基本機能は共通です。

注意点 / セキュリティリスク

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

FAQ

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

参照リンク

関連記事