免费注册 查看新帖 |

Chinaunix

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

[文本处理] 请教大家怎么实现下面这种输出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-05-26 18:19 |只看该作者 |倒序浏览
原文件:
Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:       dev8-0     63.64      0.00      0.00      0.00      0.02      0.24      0.24      1.52
Average:      dev8-16    286.87      0.00   2723.23      9.49      0.98      3.40      3.38     97.07


输出格式:
[name]
itmes=dev8-0,dev8-16
[dev8-0]
tps=63.64
rd_sec=0.00
wr_sec=0.00
[dev253-0]
tps=286.87
rd_sec=0.00
wr_sec=2723.23

论坛徽章:
26
CU大牛徽章
日期:2013-03-13 15:15:08水瓶座
日期:2014-08-31 19:44:01卯兔
日期:2014-09-05 08:48:33摩羯座
日期:2014-09-07 13:03:35子鼠
日期:2014-09-10 08:42:36白羊座
日期:2014-09-20 12:39:07丑牛
日期:2014-09-24 07:35:252015年亚洲杯之阿联酋
日期:2015-02-03 17:42:542015年亚洲杯之卡塔尔
日期:2015-02-11 13:13:022015年亚洲杯之约旦
日期:2015-03-03 15:10:522015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之卡塔尔
日期:2015-03-27 14:08:09
2 [报告]
发表于 2017-05-26 18:37 |只看该作者
awk处理
  1. BEGIN{
  2.         item_array[0]=0;
  3.         item_len=0;
  4.         name="";
  5. }
  6. {
  7.         if (NR>1){
  8.                 name=name "," $2;
  9.                 item_array[item_len]=sprintf("[%s]\ntps=%s\nrd_sec=%s\nwr_sec=%s", $2,$3,$4,$5);
  10.                 item_len++;
  11.         }
  12. }
  13. END{
  14.         printf("[name]\nitmes=%s\n", substr(name,2));
  15.         for(i=0;i<item_len; i++){
  16.                 print item_array[i];
  17.         }
  18. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2017-05-26 19:09 |只看该作者
回复 2# Third-Edition

你好能给我截图一下吗?我实现有点问题啊!很感谢你

论坛徽章:
0
4 [报告]
发表于 2017-05-26 19:26 |只看该作者
回复 2# Third-Edition

谢谢您,但是我实现还是有点问题,没有输出结果。报错了。方便的话能再详细点吗?

论坛徽章:
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
5 [报告]
发表于 2017-05-26 20:30 |只看该作者
回复 1# 加油AlwaysWin


  1. awk '{i=1;while(++i<6) {if(NR==1) {b[i]=$i} else {a[NR i]=$i}} if(NR>1) t=t?t","$2:"items="$2;}END{print "[name]\n"t;for(i=2;i<=NR;i++) for(j=2;j<=5;j++) if(j==2) print "["a[i j]"]";else print b[j]"="a[i j]}' file
  2. [name]
  3. items=dev8-0,dev8-16
  4. [dev8-0]
  5. tps=63.64
  6. rd_sec/s=0.00
  7. wr_sec/s=0.00
  8. [dev8-16]
  9. tps=286.87
  10. rd_sec/s=0.00
  11. wr_sec/s=2723.23
复制代码

论坛徽章:
26
CU大牛徽章
日期:2013-03-13 15:15:08水瓶座
日期:2014-08-31 19:44:01卯兔
日期:2014-09-05 08:48:33摩羯座
日期:2014-09-07 13:03:35子鼠
日期:2014-09-10 08:42:36白羊座
日期:2014-09-20 12:39:07丑牛
日期:2014-09-24 07:35:252015年亚洲杯之阿联酋
日期:2015-02-03 17:42:542015年亚洲杯之卡塔尔
日期:2015-02-11 13:13:022015年亚洲杯之约旦
日期:2015-03-03 15:10:522015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之卡塔尔
日期:2015-03-27 14:08:09
6 [报告]
发表于 2017-05-26 21:10 |只看该作者
回复 4# 加油AlwaysWin

报错你要贴出报错信息呀,我这个脚本是有拿你的样例来测试的,没问题,

论坛徽章:
0
7 [报告]
发表于 2017-05-27 08:45 |只看该作者
回复 5# zxy877298415

调试成功了,真是太谢谢你了。

论坛徽章:
0
8 [报告]
发表于 2017-05-27 08:46 |只看该作者
回复 6# Third-Edition

可以了,成功了。真的感谢你,昨晚要到比较着急,没有静下心来好好调试。

论坛徽章:
0
9 [报告]
发表于 2017-05-27 11:03 |只看该作者
awk 'NR>1{a=a?a","$22;b[++i]="["$2"]\ntps="$3"\nrd_sec="$4"\nwr_sec="$5}END{print "[name]\nitems="a;for(j=1;j<=i;j++){print b[j]}}' file

论坛徽章:
0
10 [报告]
发表于 2017-05-27 19:48 |只看该作者
本帖最后由 me09 于 2017-05-27 20:01 编辑

回复 5# zxy877298415 C条件表达式用的 让人眼前一亮 【?:】运算符 好评!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP