诛仙1十万大山:awk的效率 ? 三斗室

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 13:57:38

偶然和某人谈到日志处理。最简单常见的需求,日志中访问量最大的前十个IP及其访问次数。

最常见的shell命令:cat access.log | cut -d ‘ ‘ -f 4 |sort|uniq -c|sort -nr|head

我最常用的awk命令:awk ‘{a[$4]++}END{for(i in a){print a[i],i}}’ access.log | sort -nr | head

对方表示上一种速度最快,而我说是下一种。

最后找到一个13G大小的access.log,用time命令分别检测命令用时。结果处理一个13GB的日志,shell花了13分钟,awk花了1分半钟……