首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

shell awk 统计反复个数

2012-10-11 
shell awk 统计重复个数有文件file.log内容如下:http://www.sohu.com/aaahttp://www.sina.com/111http://w

shell awk 统计重复个数

有文件file.log内容如下:

http://www.sohu.com/aaa

http://www.sina.com/111

http://www.sohu.com/bbb

http://www.sina.com/222

http://www.sohu.com/ccc

http://www.163.com/zzz

http://www.sohu.com/ddd


要统每个域名出现次数:

http://www.sohu.com 4

http://www.sina.com 2

http://www.163.com 1


答案是:? awk -F / '{a[$3]++} END{for(i in a){print i,a[i] | "sort -r -k 2"}}' file.log;


解释一下,awk语法就不说了:


-F参数是制定awk分隔符,这里制定的是 /,所以每行被分成4个部分。


sort 的-r是降序,-k是按照第几组字符排序,从1开始。


a可以理解成key-value形式的对象,域名做key 个数做value。

在end动作里完成对结果a的打印,


注意: 这个方法还可以用来统计日志中响应时间等等。


热点排行