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 コマンドが入っています。 |