- 论坛徽章:
- 0
|
本帖最后由 xmi 于 2011-10-28 13:16 编辑
每个location都有一个log, 如usa-log, chn-log, kor-log ...... (有60个).
unix内可以做到像excel般的统计吗?
即想做:
1: 以usa-log的内容做一summary, 显示到每一个location的equipment (USAE01)有多少个event 12, event 440 .....
2: 以usa-log的内容做一个report, 显示如下:
lequipmentlocation: USA
event code: 12
09Feb11-13:45:00:108 USAE01
09Feb11-14:00:00:016 USAP05
event code: 440
09Feb11-14:00:00:035 USAP06
09Feb11-14:00:00:050 USAE06
09Feb11-14:00:00:051 USAP03
09Feb11-14:00:00:072 USAP03
09Feb11-14:00:00:075 USAP02
09Feb11-14:00:00:081 USAP05
.....
会不会天马行空呢?
-------------------------------------------------------
终于行了 ....
依cjaizss兄和yinyuemi (SS)的把 awk改为nawk就可以出现我想要的结果.
- cjaizss:
- nawk '$0!~/event/{next}{gsub(/'\''/,"",$(NF-3));a[$NF]=a[$NF]"\n" $1 " "$(NF-3)}END{print "lequipmentlocation: USA";for(i in a){print "event code:",i;sub(/\n/,"",a[i]);print a[i] "\n"}}' log
- yinyuemi (SS):
- nawk -F "'| " 'BEGIN{print "lequipmentlocation: USA"} /event/{a["event code: "$NF]>0?a["event code: "$NF]="\n"$1"\t"$(NF-4):a["event code: "$NF]=a["event code: "$NF]"\n" $1"\t"$(NF-4)}END{for (i in a) print i, a[i]"\n"}' log
- result:
- equipmentlocation: USA
- event code: 2
- 09Feb11-13:59:59:998 USAP01
- event code: 22
- 09Feb11-13:56:56:133 USAP07
- event code: 23
- 09Feb11-14:00:01:245 USAP02
- 09Feb11-14:00:01:253 USAP03
- 09Feb11-14:00:01:254 USAE01
- 09Feb11-14:00:01:255 USAP02
- 09Feb11-14:00:01:258 USAP03
- 09Feb11-14:00:01:260 USAP05
- event code: 9
- 09Feb11-13:59:59:982 USAP07
- event code: 77
- 09Feb11-13:55:54:283 USAP07
- event code: 44
- 09Feb11-13:45:00:151 USAP02
复制代码
但我怎也做不到依event code的大group做排列 (依event code 由细到大)? 请问要如何改呢?
另yinyuemi (SS)的出现统计错误, 可以如何更正呢?
- awk -F"'" '/event/{a[$2"\t"substr($3,5)]=++b[$3]}END{for(i in a) print i"\t"a[i]|"sort -n "}' FileName
- result:
- USAA01 event 33 1
- USAA05 event 55 1
- USAE01 event 12 1
- USAE01 event 23 3
- USAE06 event 440 2
- USAP01 event 2 1
- USAP02 event 156 1
- USAP02 event 23 4
- USAP02 event 44 1
- USAP02 event 440 5
- USAP03 event 23 5
- USAP03 event 440 4
- USAP05 event 1 1
- USAP05 event 23 6
- USAP05 event 440 6
- USAP06 event 440 1
- USAP07 event 22 1
- USAP07 event 66 1
- USAP07 event 77 1
- USAP07 event 9 1
复制代码 |
|