Linux删除重复行的代码

10-05

  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; /^.∗ \1$/!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; /^\(.*\)\n\1$/!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

服务器教程

平板电脑教程

视频播放教程