免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xmi
打印 上一主题 下一主题

unix内可以做到像excel般的统计吗? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-02-15 10:38 |显示全部楼层
本帖最后由 xmi 于 2011-02-15 10:54 编辑
...不好意思,我应该用code包起来的,后面的括号掉了
cjaizss 发表于 2011-02-14 13:55


这个没有error出现, 但只出现下面两行结果....
  1. %awk '$0~/event/{next}{a[$NF]++}END{for( i in a)print "event",i,a[i];}' log
  2. event  1
  3. event 09Feb11-14:00:01:052 1
  4. %
复制代码
那么第二那个要怎改呢?
  1. awk '$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];print "";};}' log
  2. awk: illegal statement near line 1
  3. awk: syntax error near line 1
  4. awk: illegal statement near line 1
  5. awk: syntax error near line 1
  6. %
复制代码
谢谢您!

论坛徽章:
0
12 [报告]
发表于 2011-02-15 10:56 |显示全部楼层
本帖最后由 xmi 于 2011-02-15 11:15 编辑
回复  xmi


   开始改下呢,加个转义:
awk -F "\'| "
yinyuemi 发表于 2011-02-14 13:57



也不行呢....
  1. % awk -F "\'| " 'BEGIN{"header1","header2","header3","header4"}/event/{a[$2"\t"substr($3,5)]=++b[$3]}END{for(i in a) print i"\t"a[i]|"sort -n "}' log
  2. awk: syntax error near line 1
  3. awk: bailing out near line 1
  4. %
  5. % awk -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
  6. awk: syntax error near line 1
  7. awk: bailing out near line 1
  8. %
复制代码

论坛徽章:
0
13 [报告]
发表于 2011-02-15 14:40 |显示全部楼层
回复  xmi


    要不你把代码存成文件script.awk
然后执行 awk -f script.awk urfile
希望这样可以
yinyuemi 发表于 2011-02-15 12:17



为何老是显示以下:
awk: syntax error near line 1
awk: bailing out near line 1  

看来我真是没用了.

论坛徽章:
0
14 [报告]
发表于 2011-02-15 15:40 |显示全部楼层
回复  xmi

    改下前面的部分:
yinyuemi 发表于 2011-02-15 14:44
  1. awk  'BEGIN{FS="|";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"}' file
复制代码
把您的存成script.awk 再运行 awk -f t.awk log:
awk: syntax error near line 1
awk: bailing out near line 1

再把那段code在command prompt下行一下:
awk: syntax error near line 1
awk: illegal statement near line 1


我心灰了.  

论坛徽章:
0
15 [报告]
发表于 2011-10-28 13:18 |显示全部楼层
终于行了 ....
依cjaizss兄和yinyuemi (SS)的把 awk改为nawk就可以出现我想要的结果.


  1. cjaizss:
  2. 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


  3. yinyuemi (SS):
  4. 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

  5. result:
  6. equipmentlocation: USA
  7. event code: 2
  8. 09Feb11-13:59:59:998 USAP01

  9. event code: 22
  10. 09Feb11-13:56:56:133 USAP07

  11. event code: 23
  12. 09Feb11-14:00:01:245 USAP02
  13. 09Feb11-14:00:01:253 USAP03
  14. 09Feb11-14:00:01:254 USAE01
  15. 09Feb11-14:00:01:255 USAP02
  16. 09Feb11-14:00:01:258 USAP03
  17. 09Feb11-14:00:01:260 USAP05

  18. event code: 9
  19. 09Feb11-13:59:59:982 USAP07

  20. event code: 77
  21. 09Feb11-13:55:54:283 USAP07

  22. event code: 44
  23. 09Feb11-13:45:00:151 USAP02
复制代码
但我怎也做不到依event code的大group做排列 (依event code 由细到大)? 请问要如何改呢?


另yinyuemi (SS)的出现统计错误, 可以如何更正呢?
  1. awk -F"'" '/event/{a[$2"\t"substr($3,5)]=++b[$3]}END{for(i in a) print i"\t"a[i]|"sort -n "}' FileName

  2. result:
  3. USAA01   event 33       1
  4. USAA05   event 55       1
  5. USAE01   event 12       1
  6. USAE01   event 23       3
  7. USAE06   event 440      2
  8. USAP01   event 2        1
  9. USAP02   event 156      1
  10. USAP02   event 23       4
  11. USAP02   event 44       1
  12. USAP02   event 440      5
  13. USAP03   event 23       5
  14. USAP03   event 440      4
  15. USAP05   event 1        1
  16. USAP05   event 23       6
  17. USAP05   event 440      6
  18. USAP06   event 440      1
  19. USAP07   event 22       1
  20. USAP07   event 66       1
  21. USAP07   event 77       1
  22. USAP07   event 9        1
复制代码

论坛徽章:
0
16 [报告]
发表于 2011-10-28 16:53 |显示全部楼层
回复 31# waker


先生, 我不是精于excel, 为什么这么说呢....

因这系统记录有十多万条, 所以才有所问 ... 如能做到真的帮助很大..
在这我也真的很多谢大家用心的帮忙......
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP