一个系统每天产生大量的日志文件,
我们常常要从日志文件中提取重要的数据
例如点击量,PV,UV,日活,各种异常出现次数,各个接口调用量等等。
下面举例,我想统计每天发送push,点击量有多少,有多少设备打开过,
查看push日志文件,例如:
cat pushLog.log | grep "http://t.cn/RUWRDSl" | head
显示如图:
加入我只想查看最后一列,就是只显示token的那一列,下面2条命令都可以实现:
cat pushLog.log | grep "http://t.cn/RUWRDSl" | cut -d ',' -f11 | head
cat pushLog.log | grep "http://t.cn/RUWRDSl" | awk -F ',' '{print $11}' | head
然后排序去重查看数量:
cat pushLog.log | grep "http://t.cn/RUWRDSl" | awk -F ',' '{print $11}' | sort|uniq | wc -l
或者:
cat pushLog.log | grep "http://t.cn/RUWRDSl" | cut -d ',' -f11 |sort| uniq | wc -l
如果再按每个设备打开数量 取前10名,
cat pushLog.log | grep "http://t.cn/RUWRDSl" | cut -d ',' -f11 |sort| uniq -c |sort -rn | head
总之,我们能一步一步扩展,能统计出我们想要的结果。