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}'