免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
11 [报告]
发表于 2011-02-10 23:54 |只看该作者
2.
awk '!/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 "";};}' USA-log

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
12 [报告]
发表于 2011-02-11 03:07 |只看该作者
  1. 1. awk -F"'" '/event/{a[$2"\t"substr($3,5)]=++b[$3]}END{for(i in a) print i"\t"a[i]|"sort -n "}' file

  2. 2. awk -F "'| " 'BEGIN{print "lequipmentlocation: USA"}
  3. /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)}
  4. END{for (i in a) print i, a[i]"\n"}' file
复制代码

论坛徽章:
0
13 [报告]
发表于 2011-02-11 23:12 |只看该作者
谢谢两位, 今天在公司没空呢, 待我明天一试.

论坛徽章:
0
14 [报告]
发表于 2011-02-14 13:07 |只看该作者
1.
awk '!/event/{next}{a[$NF]++}END{for( i in a)print "event",i,a;}'
cjaizss 发表于 2011-02-10 23:38



    % awk '!/event/{next}{a[$NF]++}END{for( i in a)print "event",i,a;}' USA-log
    /event/{next: Event not found   <======= 不成功哩

论坛徽章:
0
15 [报告]
发表于 2011-02-14 13:08 |只看该作者
2.
awk '!/event/{next}{gsub(/'\''/,"",$(NF-3));a[$NF]=a[$NF]"\n" $1 " "$(NF-3)}END{print "lequipmen ...
cjaizss 发表于 2011-02-10 23:54



    % awk '!/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);print a;print "";};}' usa-log
/event/{next: Event not found  <===== 这个也不行呀?

论坛徽章:
0
16 [报告]
发表于 2011-02-14 13:19 |只看该作者
本帖最后由 xmi 于 2011-02-14 13:26 编辑
yinyuemi 发表于 2011-02-11 03:07



    1. 那个成功, 但可以加入header吗?

   2. 那个就不行了 , 我是直接copy到unix内...
% 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"\n"}'Unmatched '
% Variable syntax

   如把它写成一行的话, 也不成功:
% awk -F "'| " 'BEGIN{print "lequipmentlocation: USA"}/event/ {a["event code: "$NF]>0?a["event code: "$NF]="\n"$1"\t"$(N
F-4):a["event code: "$NF]=a["event code: "$NF]"\n" $1"\t"$(NF-4)}END{for (i in a) print i, a"\n"}' log
awk: syntax error near line 1
awk: bailing out near line 1

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
17 [报告]
发表于 2011-02-14 13:37 |只看该作者
回复 16# xmi

第二个结果是这个么?
  1. 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 "}'

  2. 2. 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"}' file

  3. event code: 77
  4. 09Feb11-13:55:54:283    USAP07

  5. event code: 9
  6. 09Feb11-13:59:59:982    USAP07

  7. event code: 12
  8. 09Feb11-13:45:00:108    USAE01

  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: 33
  19. 09Feb11-13:45:00:716    USAA01

  20. event code: 440
  21. 09Feb11-14:00:00:035    USAP06
  22. 09Feb11-14:00:00:050    USAE06
  23. 09Feb11-14:00:00:051    USAP03
  24. 09Feb11-14:00:00:072    USAP03
  25. 09Feb11-14:00:00:075    USAP02
  26. 09Feb11-14:00:00:081    USAP05

  27. event code: 1
  28. 09Feb11-14:00:00:016    USAP05

  29. event code: 44
  30. 09Feb11-13:45:00:151    USAP02

  31. event code: 2
  32. 09Feb11-13:59:59:998    USAP01

  33. event code: 55
  34. 09Feb11-13:50:40:303    USAA05

  35. event code: 156
  36. 09Feb11-13:55:48:228    USAP02

  37. event code: 66
  38. 09Feb11-13:56:52:380    USAP07

复制代码

论坛徽章:
0
18 [报告]
发表于 2011-02-14 13:43 |只看该作者
本帖最后由 xmi 于 2011-02-14 13:55 编辑
回复  xmi

第二个结果是这个么?
yinyuemi 发表于 2011-02-14 13:37
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|"sort -n "}' log
2. 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"\n"}' file



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|"sort -n "}' log
awk: syntax error near line 1
awk: illegal statement near line 1


2.
你个是我想要做到的, 但我这儿一行就出了以下error:
%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"\n"}' log
awk: syntax error near line 1
awk: bailing out near line 1

%

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
19 [报告]
发表于 2011-02-14 13:43 |只看该作者
你的awk版本?奇怪.我似乎并没有用版本的特有语法啊
把/event/换成$0~/event/
把!/event/换成$0!~/event/
试下呢

论坛徽章:
0
20 [报告]
发表于 2011-02-14 13:50 |只看该作者
你的awk版本?奇怪.我似乎并没有用版本的特有语法啊
把/event/换成$0~/event/
把!/event/换成$0!~/event/
...
cjaizss 发表于 2011-02-14 13:43



试过了, 两个方法都说"illegal reference to array a" record number 25

% awk '$0!~/event/{next}{a[$NF]++}END{for( i in a)print "event",i,a;}' log
awk: illegal reference to array a
record number 25
%

% awk '$0~/event/{next}{a[$NF]++}END{for( i in a)print "event",i,a;}' log
awk: illegal reference to array a
record number 25
%
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP