LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 170|回复: 0

uniq命令

[复制链接]
发表于 2023-12-17 20:53:10 | 显示全部楼层 |阅读模式

uniq命令
uniq用于去重,但注意,不相邻的行不算重复值。

uniq [OPTION]... [INPUT [OUTPUT]]

选项说明:
-c:统计出现的次数(count)。
-d:只显示被计算为重复的**行**。
-D:显示所有被计算为重复的**行**。
-u:显示唯一值,即没有重复值的**行**。
-i:忽略大小写。
-z:在末尾使用\0,而不是换行符。
-f:跳过多少个字段(field)开始比较重复值。
-s:跳过多少个字符开始比较重复值。
-w:比较重复值时每行比较的最大长度。即对每行多长的字符进行比较。
示例:

[root@xuexi tmp]# cat uniq.txt
111
223
56
111
111
567
223
下面的命令删除了相邻的重复行,但是第一行111没有删除。

[root@xuexi tmp]# uniq uniq.txt
111
223
56
111   # 删除了重复的111
567
223
排序后去重。

[root@xuexi tmp]# sort uniq.txt | uniq
111
223
56
567
使用-d显示重复的行。

[root@xuexi tmp]# sort uniq.txt | uniq  -d
111
223
使用-D显示所有重复过的行。

[root@xuexi tmp]# sort uniq.txt | uniq  -D
111
111
111
223
223
使用-u显示唯一行。

[root@xuexi tmp]# sort uniq.txt | uniq  -u
56
567
使用-c统计哪些记录出现的次数。

[root@xuexi tmp]# sort uniq.txt | uniq  -c  
      3 111
      2 223
      1 56
      1 567
使用-d -c统计重复行出现的次数。

[root@xuexi tmp]# sort uniq.txt | uniq  -d -c
      3 111
      2 223
-c不能和-D一起使用。结果说显示所有重复行再统计重复次数是毫无意义的行为。

[root@xuexi tmp]# sort uniq.txt | uniq  -D -c
uniq: printing all duplicated lines and repeat counts is meaningless
Try `uniq --help' for more information.

文章链接: https://www.junmajinlong.com/shell/uniq/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表