From: http://churuimin425.blog.163.com/blog/static/341298772012230112956712/

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

三种常见方法:

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

shell> sort -k2n file | uniq > a.out

  这里我做了个简单的测试,当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的很好例子,大家可以自己试试看。

参考资料:

[1] SED单行脚本快速参考
http://linux.chinaitlab.com/administer/381792.html
[2] 如何删除重复的行(sed或awk)
http://www.linuxsir.org/bbs/showthread.php?t=132848

shell 删除文本中的重复行(sort+uniq/awk/sed) (方法=效率啊)相关推荐

  1. linux sed去除重复,删除文本中的重复行(sort+uniq/awk/sed)

    在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的. shell> sort file | un ...

  2. linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客

    在进行文本处理的时候,我们经常遇到要删除重复行的情况.那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用 因此,先对 ...

  3. NPP++去除文本中的重复行

    方法一: 使用正则表达是的方式: ^(.*?)$\s+?^(?=.*^\1$) 如下图格式 方法二: 选择菜单TextFX   --    TextFX Tools: 1.选择"TextFx ...

  4. C++ 实现去除文本中的重复行

    例题:有一个文本1.txt,内容有N行: 1111 3333 1111 3333 2222-- 写一段c++的代码可以将重复行去除,内容变为: 1111 3333 2222-- 代码如下: #incl ...

  5. Excel删除文本中任意位置所有空格的3种方法比较

    今天小编要分享的是删除文本任意位置的空格的3种方法,如下图文本的左中右都有空格 一. 1.为了对比先复制一列出来 2.然后呢直接按Ctrl+H打开替换对话框 ​ 3.再然后我们输入查找内容空格,然后全 ...

  6. linux删除文本中长度小于行_系统学习Linux 的文件与目录

    「历史文章」写文章的那天是生信星球陪你的第49天  你想找辆共享单车,发现满街都是别家车,没有一辆你能骑. 你想学点生信,搜了"初学者教程",满眼尽是高大上,没有一句能看懂. 终于 ...

  7. php txt删除重复行,php – 删除文本文件中的重复行

    问题是每行末尾的新行字符.因为在最后一行的末尾没有新行字符,所以它与其他行不同. 因此,只需在读取文件时删除它们,然后在再次保存文件时添加: $lines = file('test.txt', FIL ...

  8. 删除数据表中的重复行

    原表数据 select subscrbid, prcplnid,min(begtime),min(endtime),count(*) from NEW_TRAIN_TAB_SUBSCRBPRCPLN ...

  9. linux 下的文本处理——除去重复行uniq命令

    原文地址:http://blog.51yip.com/shell/1022.html 一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行 ...

最新文章

  1. 图卷积和消息传递理论的可视化详解
  2. android xml 文件里面的宽度Match_Parent 被 替换成了wrap_content
  3. 2008_10_28_星期二
  4. Android Gradle manifestPlaceholders 占位符详解
  5. 10taskkill无法终止进程_?进程的状态转换
  6. Mybatis各种模糊查询及#和$区别
  7. ios label文字行间距_iOS- 设置label的行间距字体间距
  8. oracle 数据库文件丢失
  9. 无所不能的『十五郎』向您致敬!!!
  10. Istio Proxy【Envoy扩展】详解
  11. failed to load ldlinux.c32
  12. 算法学习——K近邻算法
  13. VS2015社区版、企业版、专业版下载官网地址
  14. 问题记录:linux权限不足(Permission denied)
  15. Win10桌面整理小体会
  16. 【用积分求不规则面积+抛物线方程】HDU-1071 The area
  17. 驯服烂代码_驯服业力,SauceLabs和Internet Explorer:揭秘之旅
  18. 联想st510开卡软件_固态硬盘修复(慧荣sm2246XT主控开卡教程)
  19. 改进YOLOv5系列:13.添加CrissCrossAttention注意力机制
  20. IE8 松散耦合进程框架(Loosely-Coupled IE (LCIE)--特性介绍

热门文章

  1. Windows Server Backup 2012设置备份周期
  2. Wireshark图解教程
  3. Dottext.Web.UI.Handlers.BlogExistingPageHandler
  4. 针对数据科学家和数据工程师的4条SQL技巧
  5. 在FAANG面试中破解堆算法
  6. 数据不平衡处理_如何处理多类不平衡数据说不可以
  7. 莫烦Pytorch神经网络第二章代码修改
  8. leetcode 941. 有效的山脉数组
  9. 上海区块链会议演讲ppt_所以您想参加会议演讲吗? 这是我的建议。
  10. 以太坊ipfs_动手:Infura和以太坊上的IPFS入门