按ip统计访问日志top

命令1:

 

time awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -5                         
  78129 192.168.13.166
  75165 192.168.12.52
  58657 192.168.12.199
  54146 192.168.13.183
  34310 192.168.13.181

real    0m5.849s
user    0m5.566s
sys     0m0.285s

 

 

命令2:

 

time awk '{a[$1]++}END{for(i in a){printf("%d\t%s\n",a[i],i)}}' access.log | sort -nr | head -5                    
78129   192.168.13.166
75165   192.168.12.52
58657   192.168.12.199
54146   192.168.13.183
34310   192.168.13.181

real    0m0.626s
user    0m0.549s
sys     0m0.080s

     

    以上是两个统计top命令,对比结果一目了然。命令1方便,效率低;命令2麻烦,效率高。

    之所以想到对比这两个命令,源于一次面试,当时我的答案是命令2(在这之前一直习惯用命令2,确实没用过命令1)。对方随即对我给出的答案表示了质疑。首先质疑答案的正确性“这种方式不对吧?”。当我解释说我工作中确实这么用过的时候,又质疑了这个命令的效率“应该有更高效的方法!”。

    我其实要说的是,面试有时候不一定能考察出真正的问题,呵呵

    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值