Next: , Previous: sort invocation, Up: Operating on sorted files


7.2 uniq: ファイルのユニーク化

uniqは与えられたファイル,または与えられない場合や‘-’の input名に対し,ユニークな行を書き出します.概要です.

     uniq [option]... [input [output]]

デフォルトでuniqはその入力行を出力し,そして,出力行が繰り返 さないように隣接した繰り返している行の最初のものだけを出力します.オプ ションで,そうする代わりに,繰り返さない行を表示しない,さらに,すべて の繰り返し行を表示することも可能です.

入力ファイルはソートされている必要はありませんが,繰り返している行は隣 接している場合のみ検出されます.隣接していないものを除去したい場合,お そらくsort -uを使用したいと思うでしょう.

比較には,LC_COLLATEロカールカテゴリで指定された文字の順番を使用 します.

outputファイルが無い場合,uniqは標準出力に書き出します.

このプログラムは,以下のオプションも受け入れます.Common options も参照してください.

-f n
--skip-fields=n
ユニークさを調査する前に,それぞれの行のnフィールドスキップしま す.行がnフィールドより少ない場合,比較で空の文字列を使用します. フィールドは,少なくとも一つ以上のスペースやタブで区切られた,非スペー ス,非タブ文字の並びです.

古いシステムでは,uniqは時代遅れのオプション -nをサポートしています.POSIX 1003.1-2001 (see Standards conformance)ではこれを許可していません.代わりに -f nを使用してください.

-s n
--skip-chars=n
ユニークさの調査の前に,n文字スキップします.行がn文字より 少ない場合,比較で空の文字列を使用します.フィールドと文字のスキップオ プションを両方とも使用した場合,フィールドが最初にスキップされます.

古いシステムでは,uniqは時代遅れのオプション +nをサポートしています.POSIX 1003.1-2001 (see Standards conformance)ではこれを許可していません.代わりに -s nを使用してください.

-c
--count
それぞれの行で同じものが発生した回数を出力します.
-i
--ignore-case
行の比較時に大文字小文字の違いを無視します.
-d
--repeated
繰り返しではない行を除外します.単独で使用しているとき,このオプション でuniqは繰り返している行の最初のものを出力し,それ以外は何も 出力しません.
-D
--all-repeated[=delimit-method]
繰り返している行の二番目とそれに続く行を除外しませんが,繰り返していな い行は除外します.このオプションは,主に他のオプションと組み合わせると 便利で,例えば,大文字小文字を無視したり,選択したフィールドのみを比較 する場合です.追加のdelimit-methodで繰り返している行の組を分ける 方法を伝え、それは以下の一つにする必要があります.
none
繰り返している行の組を分離しません.これは--all-repeated (-D)と同じです.
prepend
それぞれの繰り返している行の組の前に改行を出力します.
separate
繰り返している行の組を単一の改行で分離します.これは,最初の組の前に改 行が無いこと以外‘prepend’を使用することと同じで,ユーザに直接出力 するためにはより適しているでしょう.

組が分離されていて,入力に二つ以上の空白行があるとき,出力が不明瞭にな ることに注意してください.それを避けるため,連続した改行を単一の改行に 置換するように,入力を‘tr -s '\n'’でフィルタリングしてください.

これは,gnuの拡張です.

-u
--unique
最初に繰り返している行を除外します.単独で使用しているとき,このオプショ ンでuniqはユニークな行を出力し,それ以外では何もしません.
-w n
--check-chars=n
(指定されたすべてのフィールドと文字をスキップした後)それぞれの行の最大 n文字を比較します.デフォルトで,行の残り全体が比較されます.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.