Linuxコマンド虎の巻

uniq

uniqは、テキストファイルから重複した行を削除するコマンドです。

構文

(構文)
uniq [オプション] [入力ファイル] [出力ファイル]
【オプション】
オプション説明
-c
--count
各行の出現回数を表示する
-d
--repeated
重複している行のみを表示する
-u
--unique
重複していない行のみを表示する
-i
--ignore-case
大文字と小文字を区別せずに比較する
-f
--skip-fields=N
最初のNフィールドを無視して比較する
-s N
--skip-chars=N
最初のN文字を無視して比較する
-w N
--check-chars=N
最初のN文字までを比較する

サンプル

input.txtをソートして、重複行を削除した結果をoutput.txtに保存する

sort input.txt | uniq > output.txt

重複行の出現回数を表示する

sort input.txt | uniq -c

重複していない行のみを表示する

sort input.txt | uniq -u

重複行のみを表示する

sort input.txt | uniq -d

備考

  • uniqコマンドは隣接する行しか比較しないため、正確な結果を得るには事前にsortコマンドで入力を並べ替える必要があります。
  • 出力ファイルを指定しなかった場合は標準出力に表示されます。

関連項目

  • sort:テキストファイルの中身をソートして表示する