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

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

shell问答1:从文件中抽取字段

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

领测软件测试网 有一个文件,如下,以空格分成3段(每段是7行),我现在想这样从里面抽取数据,如果某段中含有字段“REPORT COUNT= 22985”(如果含有的话,肯定是在这段的第6行中含有),则把这一段数据都放到一个新文件中,该如何实现呢?

有一个文件,如下,以空格分成3段(每段是7行),我现在想这样从里面抽取数据,如果某段中含有字段“REPORT COUNT= 22985”(如果含有的话,肯定是在这段的第6行中含有),则把这一段数据都放到一个新文件中,该如何实现呢??

代码:

YTCMSC01      AMA112 MAR07 15:19:01 2900 INFO LONG DURATION CALL
           ORIG= CDMA_CPS 000000
           TERM=
           CLG NO= 13355356234
           CLD NO=                              $
           CONNECT TIME= 066/1426170  REPORT COUNT= 22986
           ANSWERED= Y

YTCMSC01      AMA112 MAR07 15:19:01 2800 INFO LONG DURATION CALL
           ORIG= CKT     YTIGW1TRKE  477
           TERM= CKT    SB0014VOICE  121
           CLG NO= 13854829695
           CLD NO=                    13361321136
           CONNECT TIME= 066/1435147  REPORT COUNT= 22985
           ANSWERED= Y

YTCMSC01      AMA112 MAR07 15:19:01 2700 INFO LONG DURATION CALL
           ORIG= CDMA_CPS 000000
           TERM=
           CLG NO= 13356916813
           CLD NO=                              $
           CONNECT TIME= 066/0849074  REPORT COUNT= 22984
           ANSWERED= Y

解决办法:
1.grep 'REPORT COUNT= 22985' -B5 -C1 youfile >newfile
2.cat $scr_file|awk 'BEGIN~/REPORT COUNT= 22985/ &print >'$dest_file'}'
3.awk 'BEGIN/REPORT COUNT= 22985/{print >"newfile"}' file
4.awk ' { for (i=7;i>0;i--);a[1]=;if (a[2]~/REPORT COUNT= 22986/){for (i=7;i>0;i--){print a[i]}}}' yourfile >newfile

延伸阅读

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


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

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