【Linux】对文件重复行进行操作

##第五个字段以186开头,打印出整行
cat * | awk -F'|' '{if ($5 ~/^186/) {print $0}}'| sort | uniq
 
##根据某列去重
[root@localhost cc]# cat 2.txt
adc 3 5
a d a
a 3 adf
a d b
a 3 adf
去重第一列重复的行:
[root@localhost cc]# cat 2.txt |awk '!a[$1]++{print}'
adc 3 5
a d a
重复的行取最上面一行记录
去重以第一列和第二列重复的行:
[root@localhost cc]# cat 2.txt |awk '!a[$1" "$2]++{print}'
adc 3 5
a d a
a 3 adf
去除重复的行:
[root@localhost cc]# cat 2.txt |awk '!a[$0]++{print}'
adc 3 5
a d a
a 3 adf
a d b
只显示重复行:
[root@localhost cc]# cat 2.txt |awk 'a[$0]++{print}'
a 3 adf
posted @ 2022-04-27 14:55  新茶煮酒  阅读(214)  评论(0编辑  收藏  举报