歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux刪除重復行的代碼

   Linux刪除重復行的代碼

        文本處理時,經常要刪除重復行,下面是三種方法

  第一,用sort+uniq,注意,單純uniq是不行的。

  ?

1 sort -n test.txt | uniq

  第二,用sort+awk命令,注意,單純awk同樣不行,原因同上。

  sort -n $file | awk '{if($0!=line)print; line=$0}'

  第三,用sort+sed命令,同樣需要sort命令先排序。

  sort -n $file | sed '$!N; /^.∗n1$/!P; D'

  Shell腳本

  ?

1 2 3 4 5 6 # !/bin/sh   file='test.txt' sort -n $file | uniq sort -n $file | awk '{if($0!=line)print; line=$0}' sort -n $file | sed '$!N; /^(.*)n1$/!P; D'

  測試文件:

  yanggang@barry$ cat test.txt

  aaa

  bbbbb

  ccccc

  123

  aaaaa

  123

  bbb

  aaa

  執行結果:

  yanggang@barry$ ./diffRow.sh

  aaa

  aaaaa

  bbb

  bbbbb

  ccccc

  123

服務器教程

平板電腦教程

視頻播放教程

Copyright © Linux教程網 All Rights Reserved