专栏首页米扑专栏Linux 删除文本中的重复行

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排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的行可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了,看了这个例子就好理解拉。

ffffffffffffffffffffffffffffffffffffeeeeeeeeeeeeeeeeeeeefffffffffffffffffffeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeegggggggggggggggggggg

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

参考推荐:

删除文本中的重复行(sort+uniq/awk/sed)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux删除重复行

    第一,用sort+uniq,注意,单纯uniq是不行的。 sort -n test.txt | uniq

    阳光岛主
  • Linux Make(Makefile)由浅入深的学习与示例剖析

    经过长时间学习和研究linux GNU make工程管理器 ,现在把学习心得与大家分享一下,希望本文能教会您一些有用的东西。

    阳光岛主
  • Apache 工作的三种模式:Prefork、Worker、Event

    Web服务器Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。

    阳光岛主
  • sort排序命令的使用

    sort将文件的每一行作为一个单位,相互比较,原则是从首字符按照ACSLL码值进行比较,最后按照升序输出。

    TeamsSix
  • sort() function

    我在之前的博客中提到,解决排序问题的一个好用的函数就是C++的sort()函数啦。sort()函数是C++内置的函数,只需要加入头文件,掌握正确的使用方法,你就...

    AngelNH
  • Go基础之--排序和查找操作

    排序操作主要都在sort包中,导入就可以使用了 import("sort") 常用的操作 sort.Ints:对整数进行排序 sort.Strings:对字符串...

    coders
  • 一个命令帮你对文本排序

    在Linux下,有时候需要对文本内容进行排序,例如按照字典顺序排序,按照数字排序或者按照特定列排序等等。今天我们就借助一个命令-sort来满足我们对文本排序的需...

    编程珠玑
  • 梯形编程的自动演绎验证

    原文题目: Automated Deductive Verification for Ladder Programming

    吴亚芳
  • python爬虫爬取赶集网数据

    三.利用chrome浏览器分析出房价和标题的两个字段的xpath表达式,开始编写patubole.py文件。网络的爬取是通过这个文件进行的

    py3study
  • 【Android】Retrofit2.0源码解析

    Gavin-ZYX

扫码关注云+社区

领取腾讯云代金券