linux中uniq的用法,linux uniq命令用法

本文详细介绍了Linux中的uniq命令,用于检查和删除文本文件中的重复行。uniq通常与sort命令结合使用,需要先对文件排序才能有效检查重复行。文章列举了多个uniq命令的参数及其用途,如 `-c` 计数重复行,`-d` 显示仅重复一次的行,`-i` 忽略大小写等,并通过实例展示了如何统计IP地址和域名的出现次数。此外,还分享了使用awk和cut命令处理文件内容的技巧,对域名进行计数排序。
摘要由CSDN通过智能技术生成

uniq命令:

对指定的ASCII文件或标准输入进行唯一性检查,以判断文本文件中重复出现的行,常用于分析日志;查看tcp各个状态连接数,ip或域名连接数排名等等场景,一般与 sort 命令结合使用。

命令格式:

uniq [选项]... [文件1] [文件2]

uniq从已经排好序的文本文件file1中删除重复的行,输出到标准输出或file2,常作为过滤器,配合管道试压。在使用uniq命令前,必须确保操作的文本文件已经sort排序了,若不带参数运行uniq,将删除重复的行。

常见参数:

[root@bqh-118 ~]# uniq --help

用法:uniq [选项]... [文件]

从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

不附加任何选项时匹配行将在首次出现处被合并。

长选项必须使用的参数对于短选项时也是必需使用的。

-c, --count在每行前加上表示相应行目出现次数的前缀编号

-d, --repeated只输出重复的行,2次或2次以上的。

-D, --all-repeated[=delimit-method显示所有重复的行

delimit-method={none(default),prepend,separate}

以空行为界限

-f, --skip-fields=N比较时跳过前N 列

-i, --ignore-case在比较的时候不区分大小写

-s, --skip-chars=N比较时跳过前N 个字符

-u, --unique只显示唯一的行

-z, --zero-terminated使用'\0'作为行结束符,而不是新换行

-w, --check-chars=N对每行第N 个字符以后的内容不作对照

--help显示此帮助信息并退出

--version显示版本信息并退出

若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过。

提示:uniq 不会检查重复的行,除非它们是相邻的行。

如果您想先对输入排序,使用没有uniq 的"sort -u"。

测试:

不加参数只对相邻的相同行内容去重

[root@bqh-118 ~]# cat qc.log

192.168.43.117

192.168.43.119

192.168.43.118

192.168.43.118

192.168.43.117

192.168.43.117

192.168.43.119

192.168.43.110

[root@bqh-118 ~]# uniq qc.log

192.168.43.117

192.168.43.119

192.168.43.118

192.168.43.117

192.168.43.119

192.168.43.110

通过sort让重复的行相邻:

[root@bqh-118 ~]# sort qc.log

192.168.43.110

192.168.43.117

192.168.43.117

192.168.43.117

192.168.43.118

192.168.43.118

192.168.43.119

192.168.43.119

uniq配合sort来去重:

[root@bqh-118 ~]# sort qc.log |uniq

192.168.43.110

192.168.43.117

192.168.43.118

192.168.43.119

[root@bqh-118 ~]# sort -u qc.log

192.168.43.110

192.168.43.117

192.168.43.118

192.168.43.119

当然我们也可以通sort -u file实现去重

去重计数:

[root@bqh-118 ~]# sort qc.log |uniq -c

1 192.168.43.110

3 192.168.43.117

2 192.168.43.118

2 192.168.43.119

[root@bqh-118 ~]# sort qc.log

192.168.43.110

192.168.43.117

192.168.43.117

192.168.43.117

192.168.43.118

192.168.43.118

192.168.43.119

192.168.43.119

查看重复的项:

[root@bqh-118 ~]# sort qc.log |uniq -d

192.168.43.117

192.168.43.118

192.168.43.119

查看所有重复的项:

[root@bqh-118 ~]# sort qc.log |uniq -D

192.168.43.117

192.168.43.117

192.168.43.117

192.168.43.118

192.168.43.118

192.168.43.119

192.168.43.119

不区分大小写,去除重复的项:

[root@bqh-118 ~]# cat qc1.log

apple

APple

BANAN

banan

grape

orange

Orange

bqh jyw

bqh1 jyw

[root@bqh-118 ~]# uniq -i qc1.log

apple

BANAN

grape

orange

bqh jyw

bqh1 jyw

跳过第一列:

[root@bqh-118 ~]# uniq -f1 qc1.log

apple

bqh jyw

bqh1 jyw

跳过每行的第一个字符:

[root@bqh-118 ~]# uniq -s1 qc1.log

apple

APple

BANAN

banan

grape

orange

bqh jyw

bqh1 jyw

案例:处理一下qc2.log文件内容,将域名取出来并根据域名进行计数排序处理。

[root@bqh-118 ~]# cat qc2.log

http://www.baidu.com

http://www.xiaobai.com

http://www.etiantian.org

http://www.jyw.com

http://www.jyw.com

http://www.xiaobai.com

http://www.etiantian.org

http://www.jyw.com

http://www.baidu.com

http://www.baidu.com

http://www.jyw.com

http://www.etiantian.org

[root@bqh-118 ~]# awk -F / '{print $3}' qc2.log|sort|uniq -c|sort -r

4 www.jyw.com

3 www.etiantian.org

3 www.baidu.com

2 www.xiaobai.com

方法二:cut方法

[root@bqh-118 ~]# cut -d / -f3 qc2.log |sort -r|uniq -c

2 www.xiaobai.com

4 www.jyw.com

3 www.etiantian.org

3 www.baidu.com

[root@bqh-118 ~]# cut -d / -f3 qc2.log |sort -r|uniq -c|sort -r

4 www.jyw.com

3 www.etiantian.org

3 www.baidu.com

2 www.xiaobai.com

当然还有其它方法,在这里就简单介绍一下常用的方法。

标签:www,bqh,用法,192.168,linux,43.117,uniq,118

来源: https://www.cnblogs.com/su-root/p/10994482.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值