awk去掉重复的模式如下:
!a[$0]++
其中$0表示整行,$1表示第一列,$2表示第二列...
文件如下:
[root@fan102 test]# cat tt.txt
蜀 打野 刘备
蜀 打野 刘备
蜀 打野 刘备
蜀 战士 关羽
蜀 射手 黄忠
魏 打野 曹操
魏 战士 典韦
魏 战士 夏侯惇
吴 法师 周瑜
吴 法师 小乔
吴 射手 孙尚香
1、去重第一列重复的行
取重复行的第一行输出
[root@fan102 test]# cat tt.txt | awk '!a[$1]++{print}'
蜀 打野 刘备
魏 打野 曹操
吴 法师 周瑜
2、去重以第一列和第二列重复的行
[root@fan102 test]# cat tt.txt | awk '!a[$1" "$2]++{print}'
蜀 打野 刘备
蜀 战士 关羽
蜀 射手 黄忠
魏 打野 曹操
魏 战士 典韦
吴 法师 周瑜
吴 射手 孙尚香
3、去除重复的行(整行重复)
[root@localhost cc]# cat tt.txt | awk '!a[$0]++{print}'
蜀 打野 刘备
蜀 战士 关羽
蜀 射手 黄忠
魏 打野 曹操
魏 战士 典韦
魏 战士 夏侯惇
吴 法师 周瑜
吴 法师 小乔
吴 射手 孙尚香
4、只显示重复行(不加 ! )
[root@fan02 test]# cat tt.txt | awk 'a[$0]++{print}'
蜀 打野 刘备
+++++++++++++++++++++++++++++++++++++++++
+ 如有问题可+Q:1602701980 共同探讨 +
+++++++++++++++++++++++++++++++++++++++++