awkで重複行を排除してユニークな行をもとめる
Pocket

awkだけで、「sort | uniq」をせずに重複した行をまとめることができるので、備忘として残しておく。
awkでは、以下のようにコマンドを実行することで、重複行を表示させないことが可能だ。

Sponsored Links

コマンド | awk '!a[$1]++'
[centos@test-centos7 ~]$ cat /tmp/test2.txt | sort | uniq
aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc
[centos@test-centos7 ~]$ cat /tmp/test2.txt | sort | uniq | wc -l
27
[centos@test-centos7 ~]$ cat /tmp/test2.txt | awk '!a[$1]++'
aba
abc
bbc
acc
aca
cbb
cbc
abb
ccb
bbb
cca
baa
aac
aaa
bca
aab
bcc
cba
acb
bba
cab
caa
bab
ccc
bcb
cac
bac
[centos@test-centos7 ~]$ cat /tmp/test2.txt | awk '!a[$1]++' | wc -l
27

 

普通に使うなら「sort | uniq」でやるだろうけど、まぁもしかしたら使うこともあるかも?

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。