uniq – 重複行を削除・集計するコマンド

集計・統計
スポンサーリンク

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 を付けること。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント