美文网首页
awk实现用户活跃时间段统计

awk实现用户活跃时间段统计

作者: 一只小哈 | 来源:发表于2016-08-01 20:18 被阅读446次

在日常的工作中,我们往往会碰到日志统计的问题。对于数据统计的场景,可能不是很难,但是确实是很麻烦的事情。因为如果简单的场景还好,用Shell基本的命令即可。或者说,麻烦点,用python、java也可以做。但是这些都是很麻烦的,你需要控制Io,反复拷贝文件,由于有时候是很杂乱的,写程序还要反反复复调试。其实对于一般的场景awk是一个很好的工具,这是一个我面试碰见例子,也是我实际中用到的case:
Q:如何统计日志中各个时间段用户活跃的程度?
首先,我日志是有一个类似于心跳的接口,用户触发之后会打出日志。日志大概是这样的:
[07-22 08:21:21] xxxxxxx....
因为我只关心时间,需要对时间段进行统计,那么我只需要取出08即可。
用awk实现是split($2,a,":") 取出a[1]即可。
那么我同时还需要遍历全部数据,对在指定时间段内的日志做统计,因为awk中的数据类似于map,不一定要用int做key。所以我可以用“08”做key,同理“09” “10”都可以。
那么我写了以下语句:
cat xxx.log | grep 'xxxx' | awk '{split($2,a,":");b[a[1]]+=1} END{for(i in b) printf("%10s %5d\n",i,b[i])}' | sort
就达到了目的,遍历每一行的时候对b[key]+=1,像map一样。最后再END中打印出数组b,就得到了数据的统计信心。
如下图所示:

Paste_Image.png

只需要一行命令就解决了所有问题,十分方便。

相关文章

  • awk实现用户活跃时间段统计

    在日常的工作中,我们往往会碰到日志统计的问题。对于数据统计的场景,可能不是很难,但是确实是很麻烦的事情。因为如果简...

  • Redis高级功能之 - bitmap

    亿级活跃用户场景 实现日活跃统计 实现周活跃统计 为了增强用户粘性,增加一个连续打卡发放积分功能,怎么实现连续打卡...

  • 友盟统计与崩溃日志

    友盟统计,包含:用户分析: 新增用户、活跃用户、启动次数等;留存统计:留存用户、用户新鲜度,用户活跃度;用户参与度...

  • Git命令行统计代码数

    1.根据用户名时间段统计 2.查看提交者排名前N位 3.提交数统计 4.根据用户名统计 5.根据时间段统计 6.统...

  • 常用Instagram?你知道这些引流方法吗

    据统计,instagram每月活跃用户超过10亿,每天活跃用户超过5亿;instagram平台80%的用户关注某个...

  • 活跃用户(UV)统计方法

    why 面对海量的请求,如何计算UV? How 一、基于Bitmap Bitmap是一串连续的2进制数字(0或1)...

  • 使用Redis统计活跃用户

    统计活跃用户这个案例非常经典,也是我当时学习redis时,接触到的第一个让我眼睛一亮的使用方式 场景 用户登录后需...

  • 利用Redis统计活跃用户

    用位记录人1-代表张三,2-代表张四,3-代表张五;在28号这天,三人都登陆了,做如下设置 29号这天,只有张三登...

  • nginx日志分析常用命令

    统计时间段内每分钟的请求数grep "28/Aug/2020:1[1-2]" access.log|awk '{p...

  • [活跃率]用户运营重要的KPI

    何为“活跃率”? 活跃率是某一时间段内活跃用户在总用户量的占比,根据时间可分为日活跃率(DAU)、周活跃率(WAU...

网友评论

      本文标题:awk实现用户活跃时间段统计

      本文链接:https://www.haomeiwen.com/subject/qexfsttx.html