- 论坛徽章:
- 28
|
本帖最后由 我是一隻羊 于 2015-03-13 15:11 编辑
回复 14# yjbdsky
我仔细又想了一下,还是有bug
以你给的文本为例.
人数最多的时候为59,而且只有一个时间段.所以不太看的出来...
我在原来文本后添加- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
- 2015-03-11 17:46:00 2015-03-11 17:46:01 guest
复制代码 之后,应该有2个时段的人数都为59,按你需求我觉得应该把这两个时间段都找出来...但是执行上面的awk只能显示最后一个人数为59的时段.
于是我又改了下.....- awk 'function m(x){x>=j?j=x:1}$NF ~ /guest/{a[$2]=$2;a[$4]=$4;b[$2]++;c[$4]++}END{for(i=0;i++<asort(a);){b[a[i]]?s+=b[a[i]]:1;c[a[i]]?s-=c[a[i]]:1;d[i]=s;m(s)}for(n=0;n++<length(d);)printf d[n]==j?"[ "a[n]","a[n+1]" ) "j"\n":""}' inputfile
复制代码- [ 17:46:00,17:46:01 ) 59
- [ 18:19:20,18:19:26 ) 59
复制代码 |
|