1、目的:

每天凌晨0点1分统计用户点击进入内容详情页的次数,对内容点击量形成榜单。

2、分析:

A、/data/log/epg.access.log日志实时打印用户访问页面的日志,并且每天凌晨0点会进行日志切割,将前一天的日志保存为epg.access.log_YYYYMMDD。

B、分析日志发现:用户进入详情页时,/data/log/epg.access.log日志会打印含series_detail.jsp的信息,且内容ID打印在该串信息中的第71位至102位。

C、根据内容ID的点击量从大到小统计排序,输出一个文本文件。

3、脚本实现

 #!/bin/bash

 log_path="/data/log/"
src_ser="epg.access.log"
output_ser="PV"
date_str=`date +%Y%m%d -d '-1 days'`
dst_file=${src_ser}_${date_str}
outputfile=${output_ser}_${date_str}
cd $log_path
awk '{print $11}' $dst_file |grep 'series_detail.jsp' |cut -c71- |sort|uniq -c|sort -nr >> $outputfile

脚本中的第10行是本文重点:

awk '{print $11}':以默认的空格为分隔符,打印第11个字符串内容;
cut -c71-:截取第71位至第102位字符;
sort|uniq -c:sort和uniq结合使用,对文件内容先进行排序,然后进行去重并计数(计数值显示在最左边);
sort -nr:参数n为依照数值的大小排序,参数r为以相反的顺序来排序(即从大到小)。

4、截图

原日志截图:

输出文件截图(第一列为点击量,第二列为内容ID):

最新文章

  1. 借助亚马逊S3和RapidMiner将机器学习应用到文本挖掘
  2. Linux学习之Exam系统发布
  3. poj 2763 Housewife Wind
  4. 你知不知道 Cookie正在泄露你的隐私!
  5. pin导致路由器死掉的解决方法
  6. HDU 1711 Number Sequence KMP
  7. 如何关闭android studio开发环境自动保存
  8. ABP领域层——工作单元(Unit Of work)
  9. Effective C++(17) 以独立语句将newed对象置入智能指针
  10. php单例模式与工厂模式
  11. [Swift]LeetCode448. 找到所有数组中消失的数字 | Find All Numbers Disappeared in an Array
  12. asp.net session锁导致ajax请求阻塞
  13. Vector 是线程安全的,是不是在多线程下操作Vector就可以不用加Synchronized
  14. Zsh和oh my zsh的安装和使用
  15. go module 命令
  16. DB2错误码
  17. 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法
  18. Python中ndarray数组切片问题a[-n -x:-y]
  19. Android系统移植与调试之------->build.prop文件详细赏析
  20. Android(java)学习笔记73:Intent启动Activity

热门文章

  1. 【leetcode】20.有效的括号
  2. Python基础教程(第3版) 笔记(二)
  3. web自动化测试---测试中其他一些常用操作
  4. EasyNetQ中使用自定义的ISerializer
  5. .Net RPC框架Thrift的用法
  6. simhash文章排重
  7. Linux编程 5 (目录重命名与移动mv,删除文件rm,目录创建mkdir删除rmdir,查看file,cat,more,tail,head)
  8. 利用python数据分析与挖掘相关资料总结
  9. EntityFramework附加实体
  10. [AHOI2005] 航线规划