Linuxコマンド集
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

uniq  ソート済みのファイルから重複した行を削除する (1)

 構文  
uniq [-cdu] [-f skip-fields] [-s skip-chars] [-w check-chars] [-#skip-fields] [+#skip-chars] [--count] [--repeated] [--unique] [--skip-fields=skip-fields] [--skip-chars=skip-chars] [--check-chars=check-chars] [infile] [outfile]

 オプション  
-u, --unique 前後の行と異なる行を表示する
-d, --repeated 重複行を表示する
-c, --count 行表示の際,それぞれの行の数も表示する
-number, -f, --skip-fields=number 判断を開始するフィールドを指定する。指定したフィールド以降が判断に使用される
+number, -s, --skip-chars=number 判断を開始する文字数を指定する。指定した文字以降が判断に使用される
-w, --check-chars=number 判断の終了文字数を指定する。指定しない場合は行末とする
infile 元ファイルを指定する
outfile 結果を書き込むファイルを指定する。指定しない場合は標準出力に出力する

 説明  

ファイルで重複している行を削除する。ただし,ファイルはソートしてある必要がある


 使用例  
$ cat test.txt  ← 元ファイル
Fukuda 37 14 11
Fukuda 37 14 11
Sueyasu 24 14 11
Yamada 23 55 21
Yamada 65 32 11

$ uniq test.txt ← 同じ行を削除する
Fukuda 37 14 11
Sueyasu 24 14 11
Yamada 23 55 21
Yamada 65 32 11

$ uniq -f2 -w3 test.txt ← 2フィールドから3文字目までが同じ行を削除する
Fukuda 37 14 11
Yamada 23 55 21
Yamada 65 32 11

 関連事項  
sort