【文件去重】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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM