shell awk 统计重复个数

本文介绍了一种利用awk工具统计日志文件中不同域名出现次数的方法,并解释了具体实现细节,包括如何设置分隔符、如何使用数组进行计数及最终结果的排序输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有文件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的打印,


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值