Linux 删除文本中的重复行的方法

在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢?
下面就是三种常见方法?

第一,用sort+uniq,注意,单纯uniq是不行的。

shell> sort -k2n file | uniq

这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。

第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。

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

当然,自己把管道后面的代码重新设计一下,可能不需要sort命令先排序拉。

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

shell> sort -k2n file | sed '$!N; /^.∗\n\1$/!P; D'

最后附一个必须先用sort排序的文本的例子,当然,这个需要用sort排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的行可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了,看了这个例子就好理解拉。
  
ffffffffffffffffff
ffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
fffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeee
gggggggggggggggggggg

其实,这是我随便打进去的几行字,没想到就是必须用sort的很好例子,大家可以自己试试看。

(0)

相关推荐

  • 怎么删除Excel2003中的重复行与重复数据

    怎么删除Excel2003中的重复行与重复数据 删除重复行 1.将光标定位到表格内,数据-筛选-高级筛选. 2.设置筛选结果放置的位置,并选择不重复的记录. 3.此时筛选结果中已经删除了重复行,效果如 ...

  • linux删除文件中的几行(linux删除文本里的几行数据)

    linux怎么删除文件前几行这是删除第一行到第n行sed -i '1,nd' 文件名sed是一种流编辑器,它是文本处理中非常好的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行 ...

  • Excel表格中删除重复行的方法

    Excel表格中删除重复行的方法 下图中的表格就是今天的示例,因为比较短,所以肉眼就可以看出来,后面三行都是重复的.下面在本文中,Office办公助手的小编就图文详解一次性将最后三行重复行都删除掉的方 ...

  • Excel 2003如何快速删除表格中的重复数据?

    在使用 Excel 时您可能经常需要把重复的记录删除掉.在 Excel 2003 里面如何做到这点呢?我们需要用到数据筛选的功能,下面就为大家介绍一下,来看看吧! 方法 1.我们看下面这个例子.为了大 ...

  • 如何使用WPS表格快速删除表格中的重复项?

    如何使用WPS表格快速删除表格中的重复项?在使用表格文档的时候,有可能会需要用到查重功能,那么在WPS表格里面,是否可以快速查找重复项,并且快速删除重复项内容呢? 操作方法 01 第一步,打开WPS表 ...

  • 怎么删除表格中多余的行?

    怎么删除表格中多余的行?下面小编就介绍其方法. 操作方法 01 首先打开或新建一个Excel文档.如图. 02 紧接着打开它,在新的页面中我们可以看得到很多功能.如图. 03 假设我们要删除第三行,我 ...

  • Linux下grep显示前后几行信息方法介绍

    本文研究的主要是Linux下grep显示前后几行信息的相关内容,具体如下. 标准unix/linux下的grep通过下面參数控制上下文 grep -C 5 foo file 显示file文件里匹配fo ...

  • Linux下删除大数据文件中部分字段重复行的方法

    最近写的一个数据采集程序生成了一个含有1千多万行数据的文件,数据由4个字段组成,按照要求需要删除第二个字段重复的行,找来找去linux下也没找到合适的工具,sed/gawk等流处理工具只能针对一行一行 ...

  • 如何快速批量删除word2010中的重复文字

    介绍如何快速批量删除word2010文档中的重复文字.以供参考. 操作方法 01 例如图中word文档中每行中都有重复文字. 02 如果想批量删除这些重复文字,可先点击菜单栏中的"开始&qu ...