スポンサーリンク
uniqコマンドで重複している前後の行を削除
uniqコマンドで重複している前後の行を削除することができます。
例えば、下記のin.txtがあったとします。
$ cat in.txt awk awk Awk find awk find grep
uniqコマンドを実行します。
$ uniq in.txt awk Awk find awk find grep
-iオプションで、大文字小文字の違いを無視することができます。
$ uniq -i in.txt awk find awk find grep
-cオプションで、重複した数を表示できます。
$ uniq -c in.txt 2 awk 1 Awk 1 find 1 awk 1 find 1 grep
-dオプションで、重複した行のみを表示します。
$ uniq -d in.txt awk
-uオプションで、重複しなかった行のみを表示します。
$ uniq -u in.txt Awk find awk find grep
スポンサーリンク
sortコマンドとuniqコマンドを組み合わせて、重複行を削除
uniqコマンドは、重複している前後の行のみをを削除することに注意が必要です。
ファイル全体の重複行を削除するには、sortコマンドとuniqコマンドを組み合わせるの有効です。
sortコマンドでソートしてから、uniqコマンドをつなぐとファイル全体の重複行を削除できます。
$ sort in.txt | uniq Awk awk find grep
フィールド(列)を指定して重複行を削除
-fオプションで、フィールド(列)を指定して重複行を削除できます。
例えば、下記のin2.txtがあったとします。
$ cat in2.txt awk 1 awk 2 Awk 3 find 3 awk 3 find 4 grep 5
0オリジンなので、2列目を指定して重複行を削除する場合には、
-f1と指定します。
$ uniq -f1 in2.txt awk 1 awk 2 Awk 3 find 4 grep 5
スポンサーリンク