- 论坛徽章:
- 23
|
回复 #3 nblity 的帖子
try:
- $ cat test.awk
- #! /usr/bin/awk -f
- BEGIN {
- FS = "[][]"
- }
- /login/ && ! /failed/ {
- a[$22] = d2s($2)
- }
- /logout/ {
- c[$20] = d2s($2)
- if(a[$20])
- {
- b[$20] += c[$20] - a[$20]
- }
- else
- {
- b[$20] += c[$20] - d2s(substr($2, 1, 10)" 00:00:00")
- }
- }
- END {
- for(i in a)
- {
- if(c[i] < a[i])
- {
- b[i] = d2s(strftime("%Y %m %d", a[i])" 23:59:59") - a[i]
- }
- }
- for(i in b)
- {
- print i, b[i]
- }
- }
- function d2s(d)
- {
- gsub(/[-:]/, " ", d)
- s = mktime(substr(d, 1, 19))
- return s
- }
- $ awk -f test.awk urfile
- 2730 4974
- 2732 27396
- 2095 386298
- 2725 57450
- 2088 386298
- 2736 21143
- 2729 112144
复制代码
[ 本帖最后由 ly5066113 于 2009-12-3 18:00 编辑 ] |
|