1. 程式人生 > >awk去重以某列重複的行

awk去重以某列重複的行

lsof   |grep delete    |awk '{print $2}'    |awk '!a[$1]++{print}'      檢視delete程序,用awk篩選出第二列也就是程序號那一列,再次用awk去除重複的行

[[email protected] cc]# cat 2.txt 
adc 3 5 
a d a
a 3 adf
a d b
a 3 adf

去除第一列重複的行:

[[email protected] cc]# cat 2.txt |awk '!a[$1]++{print}'
adc 3 5 
a d a

重複的行取最上面一行記錄

去重以第一列和第二列重複的行:

[[email protected] cc]# cat 2.txt |awk '!a[$1" "$2]++{print}'
adc 3 5 
a d a
a 3 adf

去除重複的行:

[[email protected] cc]# cat 2.txt |awk '!a[$0]++{print}'
adc 3 5 
a d a
a 3 adf
a d b

只顯示重複行:

[[email protected] cc]# cat 2.txt |awk 'a[$0]++{print}'
a 3 adf