免费注册 查看新帖 |

Chinaunix

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

请教文本格式化问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-23 17:31 |只看该作者 |倒序浏览
我对Perl一无所知,有个Linux的sar命令出的结果,
上面要明天导入到Excel里面,厚着脸皮来求助。

文件的例子如下(逗号本来是空格的,我为了方便导入Excel换了):

20:22:23,proc/s
20:22:28,0.00
20:22:33,0.00
20:22:38,0.00
20:22:43,7.82

20:22:23,cswch/s
20:22:28,1019.04
20:22:33,42447.20
20:22:38,46078.64
20:22:43,45895.99

20:22:23,CPU,%user,%nice,%system,%iowait,%idle
20:22:28,all,0.05,0.00,0.00,0.10,99.85
20:22:28,0,0.00,0.00,0.00,0.00,100.00
20:22:28,1,0.00,0.00,0.20,0.20,99.60
20:22:28,2,0.00,0.00,0.00,0.00,100.00
20:22:28,3,0.00,0.00,0.00,0.00,100.00
20:22:33,all,0.00,0.00,15.75,0.10,84.15
20:22:33,0,0.00,0.00,25.60,0.40,74.00
20:22:33,1,0.00,0.00,17.80,0.00,82.20
20:22:33,2,0.00,0.00,11.40,0.00,88.60
20:22:33,3,0.00,0.00,8.18,0.00,91.82
20:22:38,all,0.00,0.00,15.89,0.05,84.06
20:22:38,0,0.00,0.00,25.35,0.20,74.45
20:22:38,1,0.00,0.00,18.04,0.00,81.96
20:22:38,2,0.00,0.00,11.00,0.00,89.00
20:22:38,3,0.00,0.00,8.82,0.00,91.18
20:22:43,all,0.10,0.00,16.70,0.25,82.95
20:22:43,0,0.00,0.00,25.85,0.20,73.95
20:22:43,1,0.20,0.00,17.73,0.00,82.07
20:22:43,2,0.20,0.00,12.20,0.40,87.20
20:22:43,3,0.20,0.00,11.00,0.40,88.40

20:22:23,CPU,i000/s,i001/s,i006/s,i008/s,i009/s,i012/s,i015/s,i169/s,i177/s,i185/s,i193/s,i201/s,i217/s,i225/s
20:22:28,0,0.00,0.40,0.00,0.00,0.00,0.00,0.00,0.80,0.00,0.00,0.00,0.00,0.00,0.00
20:22:28,1,0.00,0.00,0.00,0.00,0.00,0.60,10.82,0.00,0.00,0.00,0.60,0.00,0.60,0.00
20:22:28,2,842.28,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00
20:22:28,3,159.92,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60
20:22:33,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,8494.40,0.00,0.00,0.60,0.00,0.00,0.00
20:22:33,1,0.00,0.00,0.00,0.00,0.00,0.00,7.20,0.00,1747.40,0.00,0.00,0.00,3875.40,0.00
20:22:33,2,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,5727.00,0.00,0.00
20:22:33,3,1000.20,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,3894.80
20:22:38,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,8478.44,0.00,0.00,0.60,0.00,0.00,0.00
20:22:38,1,0.00,0.00,0.00,0.00,0.00,0.00,10.78,0.00,1768.06,0.00,0.00,0.00,4023.35,0.00
20:22:38,2,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,5621.36,0.00,0.00
20:22:38,3,998.20,1.60,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,4087.23
20:22:43,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,8493.39,0.00,0.00,0.00,0.00,0.00,0.00
20:22:43,1,0.00,0.00,0.00,0.00,0.00,0.00,7.21,0.00,1788.98,0.00,0.00,0.00,4165.33,0.00
20:22:43,2,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,5916.03,0.00,0.00
20:22:43,3,1002.20,6.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2.81,0.00,0.00,4129.26

想要换成这样的格式
20:22:23,proc/s,cswch/s,CPU,%user,%nice,%system,%iowait,%idle,CPU,i000/s,i001/s,i006/s,i008/s,i009/s,i012/s,i015/s,i169/s,i177/s,i185/s,i193/s,i201/s,i217/s,i225/s
20:22:28,0,1019.04,all,0.05,0,0,0.1,99.85,0,0,0.4,0,0,0,0,0,0.8,0,0,0,0,0,0
20:22:33,0,42447.2,all,0,0,15.75,0.1,84.15,0,0,0,0,0,0,0,0,8494.4,0,0,0.6,0,0,0
20:22:38,0,46078.64,all,0,0,15.89,0.05,84.06,0,0,0,0,0,0,0,0,8478.44,0,0,0.6,0,0,0
20:22:43,7.82,45895.99,all,0.1,0,16.7,0.25,82.95,0,0,0,0,0,0,0,0,8493.39,0,0,0,0,0,0

也就是说用时间为Index
20:22:23
20:22:28
20:22:33
20:22:38
20:22:43
有重复的时间的项目取第一个
把所有的项目按时间合并成一行,用逗号分隔

有没有谁可以告诉我怎么做啊?

。。。我先去看看perl的入门。如果有人要骂我想不劳而获。。我也认了。。。

论坛徽章:
0
2 [报告]
发表于 2005-11-23 19:05 |只看该作者
是 不 是这样

sort -b help.txt | sed -e s/^$/^/ | awk -F, '{if($1==b){a=a""substr($0,length(b)+1);}else{if(a)print a;b=$1;a=$0;}}END{print a;}' >out

[ 本帖最后由 angleeye 于 2005-11-23 22:52 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP