您的位置:首页 > 其它

1.uniq去重命令讲解

2016-04-07 15:36 141 查看

uniq命令:

常见参数:
-c,--count *****
在每行旁边显示改行重复出现的次数
-d,--repeated
仅显示重复出现的行,2次或2次以上的行,默认的去重包含1次。

例子:

a.只对相邻的相同行内容去重。

[root@nfs-server test]# cat test.txt


10.0.0.9


10.0.0.8


10.0.0.7


10.0.0.7


10.0.0.8


10.0.0.8


10.0.0.9


[root@nfs-server test]# uniq test.txt


10.0.0.9


10.0.0.8


10.0.0.7


10.0.0.8


10.0.0.9


b.sort命令让重复的行相邻

[root@nfs-server test]# sort test.txt


10.0.0.7


10.0.0.7


10.0.0.8


10.0.0.8


10.0.0.8


10.0.0.9


10.0.0.9


c.先用sort命令将重复的行相邻,接着使用uniq去重

[root@nfs-server test]# sort test.txt|uniq


10.0.0.7


10.0.0.8


10.0.0.9


[root@nfs-server test]#


d.将两个命令整合起来,可使用sort -u代替

[root@nfs-server test]# sort -u test.txt


10.0.0.7


10.0.0.8


10.0.0.9


e.去重计数

[root@nfs-server test]# sort test.txt|uniq -c


210.0.0.7


310.0.0.8


210.0.0.9


uniq功能:

-c,--count 去重计数
企业案例:
考试题:处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和SOHU面试题)
test.log
http://www.judong.org/index.html
http://www.judong.org/1.html

http://post.judong.org/index.html
http://mp3.judong.org/index.html
http://www.judong.org/3.html
http://post.judong.org/2.html
解答:
法1:

[root@nfs-server test]# sort test.log|awk -F "[://]+"'{print $2}'|uniq -c


1 mp3.judong.org


2 post.judong.org


3 www.judong.org


法2:

[root@nfs-server test]# awk -F /'{print $3}' test.log|sort


mp3.judong.org


post.judong.org


post.judong.org


www.judong.org


www.judong.org


www.judong.org


[root@nfs-server test]# awk -F /'{print $3}' test.log|sort|uniq -c


1 mp3.judong.org


2 post.judong.org


3 www.judong.org


[root@nfs-server test]#


让降序排列:

[root@nfs-server test]# awk -F /'{print $3}' test.log|sort|uniq -c|sort -r  ##-r,表示倒序排列


3 www.judong.org


2 post.judong.org


1 mp3.judong.org


[root@nfs-server test]#


法3:

cut 切割,简单的取列命令
-d:指定分隔符
-f数字:表示取第几列。-f3,6
-c按字符取

[root@nfs-server test]# cut -d /-f3 test.log|sort -r|uniq -c


3 www.judong.org


2 post.judong.org


1 mp3.judong.org


[root@nfs-server test]#




来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: