awk处理案例三

【场景】

有一个文件b.txt,内容如下:
[root@OracleA test]# cat b.txt
http://www.baidu.com/index.html
http://www.google.com/index.html
http://www.baidu.com/get.html
http://www.baidu.com/set.html
http://www.google.com/index.html
http://www.yahoo.com.cn/put.html
现要求将该文件中的域名截取出来,统计重复域名出现的次数,然后按次数进行降序排列,统计后的结果如下:
 3 www.baidu.com
 2 www.google.com
 1 www.yahoo.com

 

【分析】

    看到结果我会首先想到"uniq -c";随后再想到awk来实现;

【代码】测试结果如下:

 1. 不用awk来实现;用cut去截取;在用uniq -c来实现!

[li0924@localhost awk]$ cut -d"/" -f3 b.txt | sort|uniq -c
      3 www.baidu.com
      2 www.google.com
      1 www.yahoo.com.cn

2. 用awk来截取;用uniq -c来统计;原理同上没什么区别!

[li0924@localhost awk]$ awk -F"/" '{print $3}' b.txt | sort | uniq -c
      3 www.baidu.com
      2 www.google.com
      1 www.yahoo.com.cn

3.用awk数组来进行统计;

[li0924@localhost awk]$ awk -F"/" '{a[$3]++}END{for(i in a) print a[i],i}' b.txt | sort -k2
3 www.baidu.com
2 www.google.com
1 www.yahoo.com.cn


 

posted @ 2013-09-10 22:24  lottu  阅读(321)  评论(1)    收藏  举报