在进行文本处理的时候,我们经常遇到要删除重复行的情况。那怎么解决呢?

下面就是三种常见方法?

第一,用sort+uniq,注意,单纯uniq是不行的,uniq对于重复行不上下连续时不起作用

因此,先对文件的行内容排序 sort,使其上下内容连续后,再使用 uniq

sort -k2n file | uniq

这里我做了个简单的测试,当file中的重复行不再一起连续的时候,uniq将服务删除所有的重复行。

经过排序后,所有相同的行都在相邻,因此uniq可以正常删除重复行。

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

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

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

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

sort -k2n file | sed '$!N; /^\(.*\)\n\1$/!P; D'

最后,附一个必须先用sort排序的文本的例子,

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

ffffffffffffffffff

ffffffffffffffffff

eeeeeeeeeeeeeeeeeeee

fffffffffffffffffff

eeeeeeeeeeeeeeeeeeee

eeeeeeeeeeeeeeeeeeee

gggggggggggggggggggg

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

参考推荐:

linux去除内容重复行,Linux删除文本中的重复行 - 米扑博客相关推荐

  1. linux cp 排除文件,cp、tar命令排除文件和子目录 - 米扑博客

    测试树形目录 $ cd mimvp-blog/ $ tree . |____111.txt |____222.txt |____333.txt |____folder01 | |____111.txt ...

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

    From: http://churuimin425.blog.163.com/blog/static/341298772012230112956712/ 删除文本中的重复行(sort+uniq/awk ...

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

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

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

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

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

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

  6. linux快速切换目录命令,Linux在命令行快速切换目录 - 米扑博客

    今天在微博上看到一个用命令行快速切换目录的文章,比之前自己的解决方案好了非常多,必须记录下来分享下. 每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/oft ...

  7. linux 指令效率,Linux15个命令,大幅提高工作效率 - 米扑博客

    Linux 15个命令神器 ag.tig.mycli.jq.shellcheck.fzf.fpp.htop.glances.axel.sz/rz.cloc.tmux.script/scriptrepl ...

  8. 十大实用linux脚本,5个超实用的Shell脚本 - 米扑博客

    分享5个shell脚本实例,大家可以借鉴下里面的思路,看下有没另外一种实现方式. 1.定时清空文件内容,定时记录文件大小 #!/bin/bash ########################### ...

  9. linux降低磁盘的读,Linux磁盘I/O优化:vm.dirty_ratio - 米扑博客

    Linux 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据).写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到 ...

最新文章

  1. python怎么写文件-Python 读写文件
  2. RabbitMQ 消息确认机制 以及 原理解析
  3. html绘图环境,HTML_HTML5 在canvas中绘制文本附效果图,一、绘制文本 在绘图环境中提 - phpStudy...
  4. 【渝粤教育】国家开放大学2019年春季 2080现代教育思想 参考试题
  5. 读取串口 :javax.comm 2.0 windows下Eclipse的配置
  6. oracle中的and用法,Oracle bitand( )函数简介
  7. PowerBI最全可视化视图打包和DEMO汇总
  8. 大数据_Hbase-API访问_Java操作Hbase_数据操作_表删除_表获取所有数据---Hbase工作笔记0014
  9. 移动互联网时代,学iOS开发好吗
  10. 如何git-cherry-pick仅更改某些文件?
  11. 程序集与托管模块的概念
  12. 极客大学架构师训练营 性能测试 性能优化 第七次作业
  13. 正交试验软件测试用例设计方法【建议收藏】
  14. PDF太大怎么办?缩小PDF的4种常用方法
  15. 原型工具XSTAR与AXURE对比
  16. 解析微信小程序码的地址scene
  17. Android学习笔记七之ContentProvider
  18. 编程乐趣:获取12306的所有车站电报码
  19. vfp计算机sql,浅析VFP与SQL的应用(计算机科学与技术毕业论文)
  20. DDD为什么能火起来?和微服务有啥关系?

热门文章

  1. v40能升级鸿蒙系统,荣耀v40可以升级鸿蒙系统吗 荣耀共有14款机型可升级
  2. 详解ShellShock 漏洞复现原理,内附ShellShock的修复方法
  3. 《大江大河2》里这段精彩的博弈:没有对错,只有权衡
  4. 和平精英分数计算机制,和平精英加分机制怎么算 加分玩法详解
  5. 大二文本分词过滤分类实验总结
  6. 卡尔曼滤波室内温度估计
  7. Corolado软件峰会关于Geronimo的介绍
  8. PMP模拟试题每日5题(4月28日)
  9. 荣耀 MagicBook 系列新品发布会汇总:多款锐龙本、平板电脑登场~~~
  10. linux驱动:二、LED灯驱动编写