概要
隣接した同一行だけをまとめ、重複除去や件数表示を行います。前処理として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分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
sortとuniq -cを組み合わせて頻度表を作ります。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.2 フィルタを使ったテキストストリームの処理根拠: officialuniqは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
-
LPIC-1
範囲: 103.2 フィルタを使ったテキストストリームの処理根拠: officialuniqは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorialuniqは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。
実行結果サンプル
-
sort dup.txt | uniq -c2 a 1 b 1 c
戻り値コード
- 0 正常終了。処理に成功しました。
- >0 読取失敗などで失敗しました。
使用例
sort file.txt | uniqsort file.txt | uniq -csort file.txt | uniq -d
よくあるエラー
-
離れた重複が消えない 原因: uniqは隣接重複だけを扱います。対処: 先にsortして同値行を寄せます。
導入・互換性情報
POSIXで基本機能は共通です。
注意点 / セキュリティリスク
危険度は低いですが、並んでいない重複を消してくれると誤解しやすい点に注意してください。
FAQ
-
Q. sortなしでも使えますか。 A. 隣接重複だけを見るなら使えますが、全体の一意化には通常sortが必要です。
参照リンク
- カテゴリー: Text Processing
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎