shell腳本去重的幾種方法


  • 測試文件
[root@bogon ~]# cat >test
jason
jason
jason
fffff
jason

按 Ctr + D保存

1、sort -u

[root@bogon ~]# sort -u test
fffff
jason

2、uniq

[root@bogon ~]# uniq test
jason
fffff
jason

由此可見,uniq需要先排序后才能去重

3、sort、管道和uniq結合運用

  •   去除重復並保留一份重復的數據
[root@bogon ~]# sort test|uniq
fffff
jason
  •   去除所有重復的行(不保留重復的行),並計算行數
[root@bogon ~]# sort test|uniq -uc
      1 fffff
  •   找出所有重復的行,並計算行數
[root@bogon ~]# sort test|uniq -dc
      4 jason
  •   根據某個字段去重

  將原有數據改為

[root@bogon ~]# more test
jason 1
jason 2
jason 1
fffff 2
jason 3
[root@bogon ~]# sort -k 1,1 -u test
fffff 2
jason 1

  man sort查看sort的用法,-k參數是這么描述的:

    -k, --key=POS1[,POS2]
    start a key at POS1 (origin 1), end it at POS2 (default end of line)

  也就是說-k哪幾個列進行排序,pos1是開始列,pos2是結束列

 


免責聲明!

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



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