uniq コマンド

目的

ファイル内の反復行を報告するか、または削除します。

構文

uniq-c | -d | -u ] [  -f Fields ] [  -s Characters ] [  -Fields ] [ +Characters ] [ InFile OutFile ] ]

説明

uniq コマンドは、ファイル内の反復行を削除します。 uniq コマンドは、標準入力または InFile パラメーターで指定されたファイルのいずれかを読み取ります。 このコマンドは隣接する行を比較した後、ある行の二度目およびそれ以降の重複を除去します。 重複行は互いに隣接していなければなりません。 (uniq コマンドを発行する前に、 sort コマンドを使用して、 重複しているすべての行を隣接させる必要があります。) 最後に、uniq コマンドは、結果的に固有の行を、 標準出力かまたは OutFile パラメーターで指定したファイルに書き込みます。 InFile および OutFile のパラメーターは、 異なったファイルを指定していなければなりません。

入力ファイルは、テキスト・ファイルでなければなりません。 テキスト・ファイルとは、 1 行以上に編成された文字が入っているファイルです。 各行の長さは 2048 バイト (改行文字を含む) 以内で、ヌル文字が入っていてはなりません。

デフォルトでは、uniq コマンドはすべての行を比較します。 -f Fields フラグまたは -Fields フラグが指定されると、uniq コマンドは Fields 変数で指定されたフィールドの数を無視します。フィールド は、 1 つ以上の <blank> 文字によってほかの文字列と区切られた文字列です。 -s Characters フラグまたは -Characters フラグが指定されると、uniq コマンドは、Characters 変数で指定された文字数を無視します。Fields 変数および Characters 変数に指定する値は、 正の 10 進整数でなければなりません。

現在の各国語環境によって、-f フラグで使用する <blank> 文字が決まり、 さらに -s フラグがバイトを文字として解釈する方法も決まります。

正常終了の場合には、uniq コマンドは 0 の値で終了します。 そうでない場合は、0 より大きい値で終了します。

フラグ

項目 説明
-c 出力する各行の前に、その行がファイル内に表れる回数を付けて表示します。
-d 重複行のみを表示します。
-f Fields Fields 変数で指定されたフィールドの数を無視します。 Fields 変数の値が 1 入力行のフィールド数を超える場合は、 uniq コマンドは null 文字列を使用して比較します。 このフラグは、-Fields フラグと同じです。
-u 重複していない行だけを表示します。
-s Characters Characters 変数で指定された文字の数を無視します。 Characters 変数の値が 1 入力文字数を超える場合は、 uniq コマンドは null 文字列を使用して比較します。 -f フラグおよび -s フラグの両方を指定した場合には、uniq コマンドは、-f Fields フラグで指定されたフィールドの後のフィールド内で始まる -s Characters フラグで指定された文字の数を無視します。このフラグは、+Characters フラグと同じです。
-Fields Fields 変数で指定されたフィールドの数を無視します。 このフラグは、-f Fields フラグと同じです。
+Characters Characters 変数で指定された文字の数を無視します。 -Fields フラグおよび +Characters フラグの両方を指定した場合には、uniq コマンドは、-Fields フラグで指定されたフィールドの後のフィールド内で始まる +Characters フラグで指定された文字の数を無視します。 このフラグは -s Characters フラグと同じです。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 コマンドは正常に実行されました。
>0 エラーが発生しました。

fruit という名前のファイル内の重複行を削除し、それを newfruit という名前のファイルに保管するには、以下のように入力します。


uniq fruit newfruit

fruit ファイルに以下のような行がある場合、

apples
apples
peaches
pears
bananas
cherries
cherries

uniq コマンドの実行後、newfruit ファイルには、以下のような行が含まれます。


apples
peaches
pears
bananas
cherries

ファイル

項目 説明
/usr/bin/uniq uniq コマンドが入っています。