• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

shell问答13:一个awk处理文件的例子

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 78次 | 进入软件测试论坛讨论

领测软件测试网

声明:俺只是收集和整理shell版中的问题解决方案,以便学习之用,学习并非原创。在此要感谢shell版的大虾小虾们!也许有一天,可以出个《shell精彩问答集》,来方便更多的人学习shell,使用shell。

1.原始文件
  CS    100432=   8.0,   7.4,   6.9,   8.0,   5.0,   4.9,   7.4,   8.0,   9.2,
  CS    100441=   8.0,   7.9,   7.8,   7.9,   7.7,   6.6,   4.1,   9.0,   8.4,
  CS    100450=   9.0,   9.5,   9.4,   8.2,   8.1,   4.5,   9.3,   8.1,   3.7,
  CS    100459=   4.2,   4.9,   7.9,   7.9,   9.1,   8.5,   7.9,   6.1,   7.9,
  CS    100468=   7.9,   7.9,   7.9,   4.8,   8.5,   9.1,   9.1,   9.1,   9.8,
  CS    100477=   9.8,   9.1,   9.3,  10.6,   9.3,   8.0,   8.0,   9.3,  9.3,
  CS    100486=   9.4,   8.2,   8.2,   8.2,   5.7,   6.6,   8.5,   7.6,   8.4,
  CS    100495=   4.6,   6.5,   8.4,   6.5,   6.6,   6.6,   6.0,   3.6,   1.1,
  CS    100504=   8.6,   7.4,   7.4,   6.9,   8.0,   7.5,   8.6,   9.2,   8.5,
  CS    100513=   9.1,   8.5,   8.5,   7.9,   7.8,   7.9,   7.7,   9.0,  11.5,
  CS    100522=  10.9,  11.3,   8.1,   8.1,   8.2,   8.1,   9.4,   8.0,   6.3,
  CS    100531=   3.7,   6.8,   9.2,   9.8,   8.5,   7.9,   7.9,   7.9,   7.9,
  CS    100540=   7.9,   7.9,   7.9,   4.8,   7.9,   8.5,   7.9,   9.1,   7.9,
  CS    100549=   9.1,   9.3,   8.7,   9.3,  10.0,   6.2,   8.7,   6.3,   8.0,
  CS    100558=   6.4,   8.2,   5.7,   8.2,   8.2,   8.3,   4.5,   4.4,   6.5,
  CS    100567=   2.6,   2.0,   6.5,   5.3,   5.3,   6.6,   5.4,   5.5,   3.6,
  CS    100576=   5.0,   6.9,   8.6,   8.0,   8.1,   8.0,   4.9,   3.7,   9.2,
  CS    100585=   9.7,   9.7,   7.8,   7.2,  11.5,   9.6,   7.9,   7.7,   9.5,
  CS    100594=   8.9,  11.4,   6.5,   7.7,   9.4,  10.0,  10.0,   4.5,   8.0,
  CS    100603=   4.9,   5.4,   5.4,   7.9,   7.9,   7.9,   6.1,   7.9,   7.9,
  CS    100612=   7.9,   7.3,   7.8,   7.3,   6.0,   7.9,   8.6,   9.1,   9.1,
  CS    100621=   9.1,   9.4,   9.4,   9.3,   8.1,   4.9,   4.3,   7.4,   8.8,
  CS    100630=   9.3,  10.2,   8.3,   4.5,   6.4,   8.2,   5.2,   6.4,   4.4,
  CS    100639=   6.5,   4.0,   7.1,   6.5,   9.2,   6.6,   8.5,   6.0,   3.6,
  CS    100648=   6.8,   8.0,   5.0,   8.0,   6.9,   7.4,   8.0,   5.6,   4.8,
  CS    100657=   8.5,   8.6,   6.6,   6.6,   8.5,   9.0,   7.7,   7.7,   9.5,
  CS    100666=   4.6,   9.5,   8.9,   9.5,   9.4,   3.3,   7.5,   8.1,   8.0,
  CS    100675=   7.4,   6.8,   7.4,   3.6,   7.9,   7.9,   6.1,   5.4,   7.9,
  CS    100684=   9.2,   9.1,   7.9,   7.4,   7.3,   8.5,   8.6,   7.9,   9.2,
  CS    100693=   8.8,   9.4,   9.2,   7.6,   8.1,   6.2,   6.3,  10.1,  10.0,
  CS    100702=   7.5,   5.6,   9.5,   7.6,   9.4,   4.4,   9.0,  10.1,   8.2,
  CS    100711=   9.4,   7.6,   4.0,   9.0,   8.4,   5.9,   6.6,   5.5,   4.3,
  CS    100720=   5.1,   8.3,   5.5,   7.5,   7.2,   7.9,   8.1,   8.5,   3.5,
  CS    100729=   5.1,   7.8,   5.1,   7.8,   8.4,   8.0,   8.7,   7.6,   9.5,
  CS    100738=   8.2,   8.3,   5.1,   9.1,   0.7,   1.7,   8.4,   8.0,   8.0,
  CS    100747=   8.4,   8.6,   7.9,   7.1,   7.3,   7.0,   5.5,   7.0,   7.8,
  CS    100756=   9.1,   9.2,   9.0,   7.2,   7.6,   8.5,   9.2,  10.0,   8.9,
  CS    100765=   8.3,   7.6,   7.6,   5.0,   1.1,   5.6,  10.1,   8.4,   7.9,
  CS    100774=   5.0,   7.8,   8.8,   9.1,   6.6,   8.4,   6.4,   7.9,   6.7,
  CS    100783=  11.9,   9.0,   4.1,   8.4,   8.8,   7.7,   8.4,   8.4,   6.3,
  CS    100792=   7.4,   6.4,   6.8,   6.8,   8.0,   8.0,   8.8,   8.8,   4.4,
  CS    100801=   5.4,   5.4,   6.6,   8.1,   9.7,   7.3,   8.0,   8.2,   8.2,
  CS    100810=   7.3,   1.2,   0.9,   7.6,   7.1,   8.1,   8.7,   7.0,   8.0,
  CS    100819=   7.4,   7.4,   8.0,   8.3,   8.5,   6.1,   7.0,   7.0,   7.8,
  CS    100828=   9.1,  10.2,   9.0,   7.7,   7.7,   8.6,   8.6,   7.7,   7.9,
  CS    100837=   8.5,   8.3,   8.3,   9.2,  10.2,   9.2,   8.2,   7.6,   5.5,
  CS    100846=   8.3,   9.3,   8.8,   7.2,   9.2,   2.8,   7.0,   3.3,   7.7,
  CS    100855=   6.4,   6.5,   3.6,  10.5,   5.9,   6.1,   6.1,   8.4,        
                                                           CS    100863=   6.0,

解决方案:
1.
awk '{gsub(/=/,"");n2=;print "\t"n2"=";for(i=4;i<=NF;i++) {n2+=1;print "\t"n2"="$i}}' cc.txt
2.
awk -F= '
{
   split(, x, " ");
   split(, y, ",");
   for(i in y)
   {
       printf("%s %s = %4.1f\n", x[1], x[2], y[i]);
       x[2] = x[2]+1;
   }
}' file
3.
nawk 'BEGIN { FS = "," }{
gsub(/CS/,",")
gsub(/\=/,",")
{ for(i = 3; i < NF; i++)
     printf("CS %s=%s,\n", ++,  $i) }
}' filename

在unix5.0.5下通过

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网