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

浙公网安备 33010602011771号