【文件去重】linux下的几种文本去重方法

1、传统方法:cat xx | sort | uniq

优点:简单直接

缺点:顺序乱了

 

2、awk命令去重输出:awk '!x[$0]++' filename

应用扩展1:cat Afile Bfile|awk '!x[$0]++' >Cfile

依次输出A、B两个文件内容,去掉B中与A重复的行,输出到C;多应用于日志拼接。

灵活扩展2:cat Afile|awk '!x[$0]++'

也可以写作:awk '!x[$0]++' Afile

去掉重复的行,输出A文件

 

3、vim通配符:

: sort //可以直接排序,这个太好用了

:g/^.∗.∗$\n\1$/d //去除重复行

:g/\%(^\1$\n\)\@<=.∗.∗$/d //功能同上,也是去除重复行

:g/\%(^\1\>.*$\n\)\@<=\k\+\k\+.*$/d//功能同上,也是去除重复行

这几条命令我抄的,没用成功,有用成功了的麻烦告诉下,谢谢。
————————————————
版权声明:本文为CSDN博主「川中胡子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40809549/article/details/82591302

posted @ 2021-11-23 10:58  新茶煮酒  阅读(5516)  评论(0编辑  收藏  举报