如何从文件中快速找到出现频率次数最多的用户?

本文介绍了一种处理大型用户日志文件的方法,当文件大小超过服务器内存容量时,如何通过将大文件分割成小文件,并使用shell脚本配合awk进行处理,最终找出出现次数最多的用户ID。

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

目前有一个2G的用户日志文件,服务器内存1G,日志里面每行存着一个用户ID(7-10),怎么最快找出出现过最多次的用户ID?

 

1:先用 split切割成小文件
split -l100000 file newfile
2:遍历切割后的文件
for file in *.log
do
awk '{{a[$2]++}END{for(t in a) print a[t],t}}' file >> coutfile.log
done
awk '{a[$2]+=$1}END{{l=asorti(a,b);for(i=l;i>=1;i--)print b[i],a[b[i]]}' countfile.log
如果coutfile还是大 可以在循环中处理下 让他排重几次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值