8.4.38 uniqコマンド(ソートされたファイルから重複した行を削除する)
形式
uniq[-c][-d][-u][入力パス名[出力パス名]]
機能
ファイル中の重複した行を1行にして出力します。なお,同一内容の行が連続している場合だけ重複行と見なします。
引数
オプションを省略した場合,-dオプションおよび-uオプションを指定したときと同じ動作となります。重複している行は1行だけ出力し,重複していない行はすべて出力します。
- -c
各出力行の先頭に,同一行が続けて出現した回数およびスペースを1つ出力します。回数は4桁で表示します。4桁で表示できない場合は,順次桁数を増やします。回数の後ろには1文字のスペースを表示します。
- -d
重複している行を1行だけ表示します。
- -u
重複していない行を出力します。
- 入力パス名
入力対象のファイルを指定します。入力パス名を指定しない,または「-」を指定した場合は標準入力から入力します。
- 出力パス名
結果を出力するファイルを指定します。出力パス名を指定しない,または「-」を指定した場合は標準出力に出力します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
入力パス名と出力パス名に同じファイルを指定すると,ファイルは空になります。
比較できる1行の最大バイト数は8192バイトです。
バイナリファイルからの入力およびバイナリデータの出力は,動作を保証しません。
使用例
uniqコマンドを実行した結果表示に使用するファイルの形式を次に示します。
file1.txt
aaaa aaaaaaa →重複している文字列 aaaaaaa →重複している文字列 bbbbbbb bbbbbbbbbbb →重複している文字列 bbbbbbbbbbb →重複している文字列 bbbbbbbbbbb →重複している文字列 bbbbbbbbbbb →重複している文字列 bcbcbcbcbcb ddddddddddddddddddd dddddddddddddddddddddd dddddddddddddddddddddddd ddddddddddddddddddddddddeee →重複している文字列 ddddddddddddddddddddddddeee →重複している文字列
コマンドの実行例を次に示します。
オプションを指定しない場合のデフォルトを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\uniq file1.txt aaaa aaaaaaa bbbbbbb bbbbbbbbbbb bcbcbcbcbcb ddddddddddddddddddd dddddddddddddddddddddd dddddddddddddddddddddddd ddddddddddddddddddddddddeee C:\TEMP>
-cオプションを指定して,同一行が続けて出現した回数と該当する行の内容を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\uniq -c file1.txt 1 aaaa 2 aaaaaaa 1 bbbbbbb 4 bbbbbbbbbbb 1 bcbcbcbcbcb 1 ddddddddddddddddddd 1 dddddddddddddddddddddd 1 dddddddddddddddddddddddd 2 ddddddddddddddddddddddddeee C:\TEMP>
-dオプションを指定して,重複している行だけを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\uniq -d file1.txt aaaaaaa bbbbbbbbbbb ddddddddddddddddddddddddeee C:\TEMP>
-uオプションを指定して,重複しない行だけを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\uniq -u file1.txt aaaa bbbbbbb bcbcbcbcbcb ddddddddddddddddddd dddddddddddddddddddddd dddddddddddddddddddddddd C:\TEMP>
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\uniq -w uniq: illegal option -- w usage: uniq [-cdu] [input_file [output_file]]