uniq コマンドは、入力テキスト内の 連続した重複行を削除または集計 するためのコマンドです。
実務では、ログやリストから重複データを整理したり、出現回数を数える際に利用されます。
構文(Syntax)
uniq [オプション] [INPUT [OUTPUT]]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 連続した重複行を削除 | uniq data.txt |
-c | 各行の出現回数を表示 | uniq -c data.txt |
-d | 重複している行のみ表示 | uniq -d data.txt |
-u | 一度だけ現れる行のみ表示 | uniq -u data.txt |
-i | 大文字小文字を区別しない | uniq -i data.txt |
-f N | 先頭 N フィールドを無視して比較 | uniq -f 1 data.txt |
-s N | 先頭 N 文字を無視して比較 | uniq -s 2 data.txt |
-w N | 先頭から N 文字だけ比較対象にする | uniq -w 5 data.txt |
実行例
重複行を削除
sort data.txt | uniq
入力例:
apple
apple
banana
banana
cherry
出力例:
apple
banana
cherry
出現回数を表示
sort data.txt | uniq -c
出力例:
2 apple
2 banana
1 cherry
重複している行のみ表示
sort data.txt | uniq -d
出力例:
apple
banana
一度しか現れない行のみ表示
sort data.txt | uniq -u
出力例:
cherry
大文字小文字を無視して判定
sort data.txt | uniq -i
フィールドを無視して判定(2列目以降で比較)
sort data.txt | uniq -f 1
エラー例(存在しないファイルを指定)
uniq missing.txt
出力例:
uniq: missing.txt: No such file or directory
関連コマンド
sort: ソート(uniq の前処理としてよく利用される)cut: 特定列の抽出awk: 出現回数の集計やフィルタリングgrep: パターン検索
備考
uniqは 連続した重複行のみ削除 するため、事前にsortを行うのが一般的です。-cオプションを組み合わせることで、簡易的な集計ツールとして利用可能です。- 大文字小文字を無視する場合は
-iを付けること。
参考
- manページ: man7.org uniq(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント