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
解答:
法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]#