Linux 去重uniq命令详解
linux之去重uniq命令详解
uniq是对文本文件进行行去去重的工具。
- 以行为单位,进行行与行之间的字符串比较并进行去重
- 只能对有序的文本行进行有效去重,所以常与sort命令结合使用
参数 | 解释 |
-c | 统计行出现的次数 |
-d | 只显示重复的行并且去重 |
-u | 只显示唯一的行 |
-i | 忽略字母大小写 |
-f | 忽略前N个字段(字段间用空白字符分隔) |
1.与sort结合使用
准备文件
[root@linuxforliuhj test]# cat hello.sh
hello this is linux
be better
be better
i am lhj
hello this is linux
i am lhj
i am lhj
be better
i am lhj
have a nice day
have a nice day
hello this is linux
hello this is linux
have a nice day
zzzzzzzzzzzzzz
dddddddd
gggggggggggggggggggg
[root@linuxforliuhj test]#
【1】单独使用uniq命令
[root@linuxforliuhj test]# uniq hello.sh
hello this is linux
be better
i am lhj
hello this is linux
i am lhj
be better
i am lhj
have a nice day
hello this is linux
have a nice day
zzzzzzzzzzzzzz
dddddddd
gggggggggggggggggggg
[root@linuxforliuhj test]#
可以看出单独使用uniq命令时只对相邻重复行进行去重,无法进行有效去重
【2】与sort结合使用
[root@linuxforliuhj test]# sort hello.sh | uniq
be better
dddddddd
gggggggggggggggggggg
have a nice day
hello this is linux
i am lhj
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
先排序使重复的行相邻,然后使用uniq可以有效去重
【3】uniq支持管道符
[root@linuxforliuhj test]# cat hello.sh | sort | uniq
be better
dddddddd
gggggggggggggggggggg
have a nice day
hello this is linux
i am lhj
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
uniq支持管道符
2.统计出现的次数,使用-c参数
使用-c,–count可以统计重复行出现的次数
[root@linuxforliuhj test]# cat hello.sh | sort | uniq -c3 be better1 dddddddd1 gggggggggggggggggggg3 have a nice day4 hello this is linux4 i am lhj1 zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
3.只显示重复的行并且去重,使用-d参数
使用-d,–repeated只显示重复的行并且重复的行只显示一次
[root@linuxforliuhj test]# cat hello.sh | sort | uniq -dc3 be better3 have a nice day4 hello this is linux4 i am lhj
[root@linuxforliuhj test]#
可以看到末尾的三行不重复的行没有显示,将重复的行进行去重后显示
3.只显示唯一的行,使用-u参数
[root@linuxforliuhj test]# cat hello.sh | sort | uniq -u
dddddddd
gggggggggggggggggggg
zzzzzzzzzzzzzz
[root@linuxforliuhj test]#
只有末尾三行是唯一的,所以只显示末尾的三行文本
4.忽略字母大小写,使用-i参数
[root@linuxforliuhj test]# cat test.txt
I am LHJ
i am lhj
HELLO this Is Zhang
hello this is zhang
[root@linuxforliuhj test]# cat test.txt | sort | uniq -i
hello this is zhang
i am lhj
[root@linuxforliuhj test]#
5.忽略前N个字段进行去重,使用-f参数
[root@linuxforliuhj test]# cat test.txt
1 I am LHJ
2 i am lhj
3 HELLO this Is Zhang
4 hello this is zhang
[root@linuxforliuhj test]# cat test.txt | sort | uniq -i -f 1
1 I am LHJ
3 HELLO this Is Zhang
[root@linuxforliuhj test]#
test.txt文件中每一行之前有行号,无法使用sort和uniq进行去重,可以使用-f参数忽略每一行的第一个字段,这样就可以忽略每一行之前的行号,对每一行之后的内容进行去重处理。
注意:字段之间必须是空白字符(空格或者tap键均属于空白字符)分隔,使用其他字符无法识别
对于这种情况也可以使用awk命令工具进行处理去除第一列的行号,然后通过管道符丢给sort和uniq命令处理,后续会继续更新awk等重要的文本处理工具。
感谢大佬OH!!!
Linux 去重uniq命令详解相关推荐
- linux之去重uniq命令详解
linux之去重uniq命令详解 uniq是对文本文件进行行去去重的工具. 以行为单位,进行行与行之间的字符串比较并进行去重 只能对有序的文本行进行有效去重,所以常与sort命令结合使用 参数 解释 ...
- Linux下uniq命令详解及C/C++代码实现
Linux uniq 命令用于从文件中删除所有重复的行. 此外,它还可用于显示任何单词的计数.仅重复行.忽略字符以及比较特定字段. 它是 Linux 系统中最常用的命令之一. uniq 命令使用 Un ...
- linux之uniq 命令详解
Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. uniq 可检查文本文件中重复出现的行列. 语法: uniq [-cdu][-f<栏位> ...
- Linux之uniq命令详解
注: 部分概念介绍来源于网络 uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. uniq 可检查文本文件中重复出现的行列. 语法 uniq [-cdu][-f&l ...
- Linux中iptraf命令详解(IP局域网监控工具)
2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03 作者:佚名 ...
- linux ln(link) 命令详解
linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...
- [老男孩笔记系列]-之linux定时任务crontab命令详解
linux定时任务crontab命令详解 1.1指令语法 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 1.2指令说明 通 ...
- linux rm(remove) 命令详解
linux rm(remove) 命令详解 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录 ...
- linux下dd命令详解
linux下dd命令详解 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...
最新文章
- php in yii framework
- String类中的equals方法与Object类中的equals方法的不同点
- JAVA中关于并发的一些理解
- python中的json_python中json的使用
- C#基础知识学习(2)string类中的方法
- datatables 更新选中行 的一行数据
- 从JVM的角度看JAVA代码--代码优化
- Django讲课笔记09:使用QuerySet新增和更新数据
- layer 同步调用_YYText源码解读-YYText同步/异步渲染流程(一)—UIView与CALayer
- 一个api请求的流程
- Servlet容器:Jetty和tomcat的比较
- 【图像边缘检测】基于matlab蚁群聚类图像边缘检测【含Matlab源码 728期】
- USBCNC输出板与VFD和主轴的使用
- Pem私钥pkcs1和pkcs8之间互转
- python实现whois查询_Python 工具whois查询
- uni-app上传图片并添加水印
- 教女朋友学Python(8)——排排坐吃果果
- 用jq实现简单的锚点切换
- 智能电源插座和电灯开关全国产化电子元件推荐方案
- 计算机网络考研面试题