`
nanjingjiangbiao_T
  • 浏览: 2599473 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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



参考推荐:

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


分享到:
评论

相关推荐

    LINUX处理文本命令

    LINUX处理文本命令 处理文本和文本文件的命令 一. sort 文件排序, 通常用在管道中当过滤器来...这个过滤器将会删除一个已排序文件中的重复行. 这个命令经常出现在sort命令的管道后边. 四. expand, unexpand ... ...

    shell中删除文件中重复行的方法

    Linux下文本处理工具很丰富很强大,例如这样一个文件: 代码如下:cat log ...1.使用uniq/sort删除重复行注意:单纯uniq是不行的。 代码如下

    Linux下字典去重复等文本编辑命令

    个人常用的字典处理和文本编辑...主要是grep、sort、cat等命令的使用实例,功能如从文本中提取md5哈希值、提取邮箱、提取HTTP URLs,字典去重复、删除所有空格、根据词长排序、去掉空白行、大小写转换等,共60余条命令

    linux系统vim实验报告.doc

    关于文本编辑器 vim 的使用 【注】里面的内容和自己跟着敲敲,文件名字换成自己的,可以套用我的模板和前言结论,代码最好跟着敲敲,里面的操作步骤我也说的...4.文本的查找,撤销与重复。 【注】原创文章,请勿转载

    linux.chm文档

    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 lsattr 显示特殊的属性 返回顶部索引 ^ 打包和压缩文件 bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 bzip2 file1 压缩一个叫做...

    redhat linux教材20课程学习文档

    4.5 在文件中替换和删除文本 4.5.1 命令模式中的替换命令 4.5.2 在底线模式中的替换命令 4.5.3 底线模式中的删除方式 4.6 撤销和重复编辑命令 4.7 移动和复制文本 4.7.1 文本行的移动 4.7.2 在底线模式中的整行移动 ...

    vim安装包,用于linux十分便捷

    dd 删除一行 c 和d功能一样,只不过删除完会进入插入模式 yy 选定光标所在行复制 p 粘贴yy复制的行,贴在光标所在位置之右 P 粘贴yy复制的行,贴在光标所在位置之左 cw 删除光标所在的单词并且进入插入状态 R ...

    linux 面试题 (附答案)

    5.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 C 命令。 A 上箭头 B 下箭头 C ; D <*>; 6.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A 。 -rwxr-xr-- 1 root ...

    RED HAT LINUX 6大全

    6.5.3 误删除文档 101 6.5.4 文件工具箱 101 6.5.5 当系统不能引导时,Red Hat会 来救援 102 6.5.6 获取更多的信息 103 6.6 小结 104 第7章 SMTP和协议 105 7.1 Internet电子邮件标准的历史简述 105 7.1.1 sendmail...

    重复文件清理工具(含源代码C#)

    其实Window的NTFS文件系统也支持文件硬链接的(CreateHardLink),现在就提供一个工具,以相似的文件名为基础,查找重复的文件,我们 忽略(1) 这样的重复模式文本(正则表达式为: @"(\s)|复件|\((\d)+\)"),把重复...

    linux vi 常用命令

    当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、 游刃有余,因为其他几种文本处理器并非UNIX标准配备。...

    borg-macosx64 borgbackup: 1.1.11 重复数据删除备份程序

    主要功能节省空间的存储基于内容定义的分块的重复数据删除用于减少存储的字节数:每个文件被分为多个可变长度的分块,并且仅将以前从未见过的分块添加到存储库中。如果块的id_hash值相同,则将其视为重复。具有加密...

    功能超级强悍的文本编辑器 PilotEdit 14.3.0 + x64 中文多语免费版.zip

    支持文本编辑,比较,FTP编辑,FTP上传下载,加密,十六进制编辑,列模式,回行显示,正则表达式,多行查找和替换,代码折叠,关键字高亮显示,编辑400GB的大文件,比较100GB的大文件,对超过1G的大文件排序,删除...

    LINUX与UNIX SHELL编程指南(很全)

    10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 ...

    LINUX/UNIX Shell编程大作业

     在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续``````”(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。...

    Linux shell编程指南

    10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 ...

    Linux与unix shell编程指南

    10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 ...

    linux应用与开发基础

    本书是将要学习嵌入式或者想要成为linux系统管理人员的基本入门书籍,非常不错 Linux应用与开发基础 目 录 第一章 了解LINUX操作系统.......................................................... 6 1.1 什么是LINUX...

    LINUX与UNIX SHELL编程指南 高清PDF

    10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 ...

    绝版经典《Linux与UNIX Shell编程指南》

    10.4.15 删除文本 96 10.4.16 替换文本 96 10.5 使用替换修改字符串 97 10.6 将sed结果写入文件命令 97 10.7 从文件中读文本 98 10.8 匹配后退出 98 10.9 显示文件中的控制字符 99 10.10 使用系统sed 99 10.10.1 ...

Global site tag (gtag.js) - Google Analytics