Chinaunix

标题: 高手看看,我认为有点难度 [打印本页]

作者: wh21667    时间: 2010-01-18 08:15
标题: 高手看看,我认为有点难度
2010-1-17 20:45:33 ip1
2010-1-17 20:45:55 ip11
2010-1-17 20:46:19 ip11
2010-1-17 20:47:24 ip1111
2010-1-17 20:47:37 ip1111
2010-1-17 20:47:53 ip1
2010-1-17 20:48:01 ip1111
2010-1-17 20:48:40 ip1111


我想算出 每次ip1或者ip11,或者ip1111的每2个之间时间间隔了多少秒,我该怎么写awk语句啊,我琢磨一晚上都没想出来,高人指点啊。。。。
作者: 刘五十三    时间: 2010-01-18 08:47
先grep出ip1的到临时文件,再awk
作者: ywlscpl    时间: 2010-01-18 09:28
  1. awk -F ' +|[-:]' '{t=$1" "$2" "$3" "$4" "$5" "$6}c[$NF]++{print $NF,mktime(t)-mktime(a[$NF])}{a[$NF]=t}' file
复制代码

  1. [root@Mylinux tmp]# awk -F ' +|[-:]' '{t=$1" "$2" "$3" "$4" "$5" "$6}c[$NF]++{print $NF,mktime(t)-mktime(a[$NF])}{a[$NF]=t}' file
  2. ip11 24
  3. ip1111 13
  4. ip1 140
  5. ip1111 24
  6. ip1111 39
复制代码

作者: nigelrax    时间: 2010-01-18 11:01
学习了
作者: bbgg1983    时间: 2010-01-18 11:20
2楼的大师能解释一下吗?
作者: rdcwayx    时间: 2010-01-18 13:44
原帖由 ywlscpl 于 2010-1-18 09:28 发表
awk -F ' +|[-:]' '{t=$1" "$2" "$3" "$4" "$5" "$6}c[$NF]++{print $NF,mktime(t)-mktime(a[$NF])}{a[$NF]=t}' file

[root@Mylinux tmp]# awk -F ' +|[-:]' '{t=$1" "$2" "$3" "$4" "$5" "$6}c[$NF]++{prin ...


很巧妙。mktime 用的很好。
作者: wh21667    时间: 2010-01-18 22:00
学习了,明天去公司试试,呵呵




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2