Linux 删除文本中的重复行
Eave
2014.11.27 22:16
在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢?
下面就是五种常见方法
第一,只用sort命令。
$ sort -u file
第二,只用awk命令。
$ awk '!a[$0]++' file
第三,用sort + uniq,注意,单纯uniq是不行的。
$ sort -k2 -n file | uniq
当file中的重复行不再一起的时候,uniq不能删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行
第四,用sort + awk命令,注意,单纯awk同样不行,原因同上。
$ sort -k2 -n file | awk '{if ($0 != line) print;line = $0}'