主页 > 知识库 > Linux 删除文本中的重复行的方法

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

热门标签:iphone地图标注我的店铺 ai智能外呼系统是什么 哪种品牌的400电话申请 成都米兰申请 广东电话机器人开户 旅游路书地图标注 百度地图地图标注客服多少 百度ai电销机器人排名 适用的400电话办理

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

第一,用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的很好例子,大家可以自己试试看。

标签:玉林 茂名 汕头 泰安 陕西 绍兴 大连 辽阳

巨人网络通讯声明:本文标题《Linux 删除文本中的重复行的方法》,本文关键词  Linux,删除,文本,中的,重复,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Linux 删除文本中的重复行的方法》相关的同类信息!
  • 本页收集关于Linux 删除文本中的重复行的方法的相关信息资讯供网民参考!
  • 推荐文章