免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2476 | 回复: 4
打印 上一主题 下一主题

[数值计算] 每30分钟计算差值 求助CU大神 [复制链接]

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-21 17:45 |只看该作者 |倒序浏览
a.txt 形如
  1. 2014-04-18 00:00:08 123.125.71.19
  2. 2014-04-18 00:00:08 123.125.71.19
  3. 2014-04-18 00:00:10 123.125.71.19
  4. 2014-04-18 00:00:10 123.125.71.19
  5. 2014-04-18 00:00:16 123.125.71.19
  6. 2014-04-18 00:00:16 123.125.71.19
  7. 2014-04-18 00:00:16 123.125.71.19
  8. 2014-04-18 00:00:16 123.125.71.19
  9. 2014-04-18 00:00:16 123.125.71.19
  10. 2014-04-18 00:00:16 123.125.71.19
  11. 2014-04-18 00:00:16 123.125.71.40
  12. 2014-04-18 00:00:16 123.125.71.40
  13. 2014-04-18 00:00:21 220.181.108.141
  14. 2014-04-18 00:00:21 220.181.108.153
  15. 2014-04-18 00:00:21 220.181.108.153
  16. 2014-04-18 00:00:21 220.181.108.153
  17. 2014-04-18 00:00:22 220.181.108.141
  18. 2014-04-18 00:00:22 220.181.108.153
  19. 2014-04-18 00:00:22 220.181.108.153
  20. 2014-04-18 00:00:22 220.181.108.153
  21. 2014-04-18 00:00:22 220.181.108.153
  22. 2014-04-18 00:00:22 220.181.108.153
  23. 2014-04-18 00:00:22 220.181.108.153
  24. 2014-04-18 00:00:22 220.181.108.180
  25. 2014-04-18 00:00:29 123.125.71.47
复制代码
需求:
计算每1800s 内,同个IP的时间戳差值  即: 每个IP30分钟内时间戳值 = (30分钟内同一IP最大时间戳)- (30分钟内同一IP最小时间戳)///ps:上次大神们帮忙计算了,现在加上 1800s内进行计算,改如何呢



上回帖子:http://bbs.chinaunix.net/thread-4135126-1-1.html

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-04-21 17:49 |只看该作者
回复 1# 老狼000
我的理解在上次的计算结果中筛选一下,
只显示差在1800以内的结果?


   

论坛徽章:
2
金牛座
日期:2013-11-15 15:50:59巨蟹座
日期:2013-12-13 11:17:52
3 [报告]
发表于 2014-04-22 10:50 |只看该作者
意思 每隔1800s 为一个区间,然后计算回复 2# Herowinter


   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-04-22 11:03 |只看该作者
回复 3# 老狼000
什么叫每隔1800秒,你开始计时的起点是?
文本中该ip第一次出现的那个时间?参数指定的某个时间?
对应你给的文本,你期望的结果是?


   

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
5 [报告]
发表于 2014-04-22 15:27 |只看该作者
本帖最后由 rdcwayx 于 2014-04-22 15:30 编辑

缺省认为你的文件是日志文件,本身已经按照时间排序了。 这个awk命令可以列出30分钟内(00-29,30-59),每个IP的最大和最小时间戳。

留个homework,你自己计算时间戳差值吧。
  1. awk '{split($2,a,":");a[2]=int(a[2]/30);str=$1 FS a[1] FS a[2] FS $3;if (!b[str]++) {start[str]=$1 FS $2};end[str]=$1 FS $2}END{for (i in b) print i, start[i],end[i]}' OFS="|" file

  2. 2014-04-18 00 0 123.125.71.19|2014-04-18 00:00:08|2014-04-18 00:00:16
  3. 2014-04-18 00 0 123.125.71.47|2014-04-18 00:00:29|2014-04-18 00:00:29
  4. 2014-04-18 00 0 220.181.108.141|2014-04-18 00:00:21|2014-04-18 00:00:22
  5. 2014-04-18 00 1 123.125.71.19|2014-04-18 00:30:16|2014-04-18 00:59:16
  6. 2014-04-18 00 0 220.181.108.180|2014-04-18 00:00:22|2014-04-18 00:00:22
  7. 2014-04-18 00 0 220.181.108.153|2014-04-18 00:00:21|2014-04-18 00:00:22
  8. 2014-04-18 00 0 123.125.71.40|2014-04-18 00:00:16|2014-04-18 00:00:16
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP