免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2502 | 回复: 19
打印 上一主题 下一主题

[文本处理] awk 标签 列求和 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-27 14:16 |只看该作者 |倒序浏览
原始文本:
QPS   Commit Rollback   TPS    Threads_con Threads_run
1        0        0       0        31         1
14      0        0       0        31         1
15      0        0       0        31         1
45      0        0       0        31         1
1       0        0       0        31         1
1       0        0       0        31         1
1       0        0       0        31         1
1       0        0       0        31         1
15      0        0       0        31         1
要求输出:
QPS  93
Commit 0
Rollback 0
TPS  0
Threads_con 310
Threads_run 10
结果就是第一列当标签:从第二行后 列求和

论坛徽章:
0
2 [报告]
发表于 2014-11-27 14:22 |只看该作者
回复 1# 莫侠007

我想到的笨方法是:
awk '{if(NR>2){s1=s1+$1;s2=s2+$2;s5=s5+$5}} END {print "QPS",s1"\n""Commit",s2"\n""Threads_run",s5}' /data/logs/zabbix/mysql_status.log
能不能写个循环?

   

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
3 [报告]
发表于 2014-11-27 14:38 |只看该作者
awk 'NR==1{for(i=1;i<=NF;i++)Tab[i]=$i}{for(i=1;i<=NF;i++)result[i]+=$i} END{for(i=1;i<=NF;i++)print Tab[i],result[i]}'

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
4 [报告]
发表于 2014-11-27 14:43 |只看该作者
[ 本帖最后由 zxy877298415 于 2014-11-27 14:49 编辑 ]

awk 'NR==1{for (i=1;i<=NF;i++) a[i]=$i}FNR>1&&NR>FNR{for (i=1;i<=NF;i++) b[i]+=$i}END{for (i=1;i<=NF;i++) print a[i]":"b[i]}' file file
PS:94
Commit:0
Rollback:0
TPS:0
Threads_con:279
Threads_run:9


   

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
5 [报告]
发表于 2014-11-27 14:46 |只看该作者
回复 4# zxy877298415
我自己测试过了,我这个是基于一个文件的
awk 'NR==1{for(i=1;i<=NF;i++)Tab=$i}{for(i=1;i<=NF;i++)result+=$i} END{for(i=1;i<=NF;i++)print Tab,result}' 111
QPS 94
Commit 0
Rollback 0
TPS 0
Threads_con 279
Threads_run 9



   

论坛徽章:
0
6 [报告]
发表于 2014-11-27 14:46 |只看该作者
回复 4# zxy877298415

不好意思 我文本贴少了一行

   

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
7 [报告]
发表于 2014-11-27 14:46 |只看该作者
回复 5# super皮波
恩,那我的多余了


   

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
8 [报告]
发表于 2014-11-27 14:48 |只看该作者
回复 7# zxy877298415
楼主的就是一个文本


   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
9 [报告]
发表于 2014-11-27 14:50 |只看该作者
  1. awk 'NR==1{for(i=0;i++<NF;)a[i]=$i;next}{for(i=0;i++<NF;)b[i]+=$i}END{for(i=0;i++<NF;)print a[i],b[i]}'  urfile
复制代码

论坛徽章:
0
10 [报告]
发表于 2014-11-27 14:57 |只看该作者
本帖最后由 莫侠007 于 2014-11-27 15:17 编辑

回复 5# super皮波
Tab=$i 不是数组了,Tab=$i才对 你上面写的


会自动把Tab[ i ]变成了 Tab


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP