免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 说不过去
打印 上一主题 下一主题

[文本处理] 大量数据的解析与比较处理 [复制链接]

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
31 [报告]
发表于 2014-02-13 15:56 |只看该作者
本帖最后由 Herowinter 于 2014-02-13 15:58 编辑

回复 30# 说不过去
rar我解压不了的...
.zip 或 tar.gz
公司的电脑,我没办法。

   

论坛徽章:
0
32 [报告]
发表于 2014-02-13 15:58 |只看该作者
回复 29# Herowinter


    其实标准中的PASS中小于等于的值 就是用来直接跟 数据中的failed 判断的  假设允许《5 个  实际出来 fail 4个 证明就通过了 反之6个就不过

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
33 [报告]
发表于 2014-02-13 16:00 |只看该作者
回复 32# 说不过去
好吧,那我自做聪明做错了,
我是3-2<=1,再比coverage那种逻辑。

   

论坛徽章:
0
34
发表于 2014-02-13 16:01
回复 31# Herowinter


    你看看

新建文件夹.zip

2.88 KB, 下载次数: 1

论坛徽章:
0
35 [报告]
发表于 2014-02-13 16:01 |只看该作者
回复 31# Herowinter


   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
36 [报告]
发表于 2014-02-13 16:25 |只看该作者
回复 35# 说不过去
实际的文本要复杂得多啊,你除了必要的log外,
这些文件名还在其他地方出现会影响正则,
还有这种情况,你开始需求没说。
  1.     |  /vobs/rru/rsl/antennatests/tantennatests:TEST RESULT        
  2.     |-------------------------------------------------------
  3.     |   ALL CASES FIALED!!!
  4.     |-------------------------------------------------------
  5.     |   1279:  =========== gcov_run : Coverage of antennatests = 64.5857% ===========
复制代码

论坛徽章:
0
37 [报告]
发表于 2014-02-13 16:34 |只看该作者
回复 36# Herowinter


    ALL case filed 的情况很特殊 很少遇到的 你先帮我把前面的问题解决下
   我发现不对齐的原因了
module          Total   Passed  Cov.    Total   Passed  Cov
acl             8               96.00%  3       57.45%  failed
ampcontrol      30      <=1     83.00%  3       2       2.73106%        failed

acl 是全部通过的模块 所以在passed中 它是神略不写的 所以 就不对其 改怎么解决呢  难道写跟total一样的值进去吗? 如果不写的留着空格 判定该怎么写

论坛徽章:
0
38 [报告]
发表于 2014-02-13 16:37 |只看该作者
回复 36# Herowinter


     -------------------------------------------------------
    |  /vobs/rru/rsl/acl/tacl:TEST RESULT                                               
    |------------------------------------------------------
    |   8 cases passed
    |-------------------------------------------------------
    |   2394:  =========== gcov_run : Coverage of acl = 96.72%  ===========
    -------------------------------------------------------
    -------------------------------------------------------
    |  /vobs/rru/rsl/ampcontrol/tampcontrol:TEST RESULT            
    |-------------------------------------------------------
    |   Run: 30   Failure total: 1   Failures: 1   Errors: 0
    |-------------------------------------------------------
    |   5972:  =========== gcov_run : Coverage of ampcontrol = 83.509%  ===========
    --------------------------------------------------------
   
     -------------------------------------------------------
    |  /vobs/rru/ral/edpd/tedpd:TEST RESULT            
    |-------------------------------------------------------
    |   ALL CASES FIALED!!!
    |-------------------------------------------------------
    |   436:  =========== gcov_run : Coverage of edpd = %  ===========

一共是这3个情况 第三个 比较少  遇到这个情况不需要比较 直接判定失败  
module          Total   Passed  Cov.    Total   Passed      Cov
acl                8               96.00%    all case fialed!!                fialed

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
39 [报告]
发表于 2014-02-13 16:55 |只看该作者
本帖最后由 Herowinter 于 2014-02-13 17:09 编辑

回复 38# 说不过去
估计要改一会儿,baseline.txt行尾还有^M$
要dos2unix, 没有dos2unix, 能自己替换吗?


   

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
40 [报告]
发表于 2014-02-13 17:09 |只看该作者
本帖最后由 Herowinter 于 2014-02-13 18:19 编辑

回复 38# 说不过去

试一下这个吧,我对需求的理解是,
failed的数目大于<=后面的那个数字 或
cov比标准小 判定为failed
  1. #!/bin/bash

  2. function caseResult(){
  3. awk '
  4.     NR==FNR{if($0~/.*\|.*TEST RESULT/){file=gensub(".*/([A-Za-z0-9_]+):TEST RESULT.*","\\1",1);file=substr(file,2)}
  5.     else if($0~/.*\|.*passed/){total[file]=$2;}else if($0~/.*\|.*Run/){total[file]=$3;failed[file]=$6}
  6.     else if($0~/.*\|.*ALL CASES FIALED/){all_fail[file]=1}else if($0~/.*\|.*Coverage/){cov[file]=$(NF-2)};next}
  7.     {if(FNR==1){print"module\tTotal\tPassed\tCov.\tTotal\tPassed\tCov";next}
  8.     if(all_fail[$1]){print $0"\tfailed";next}
  9.     if($1 in total){s1=+$NF;if($1 in failed){s2=gensub(/.*<=([0-9]+).*/,"\\1",1);if((failed[$1]>s2)||(cov[$1]<s1))$0=$0"\t"total[$1]"\t"failed[$1]"\t"cov[$1]"\tfailed"}
  10.     else if(cov[$1]<s1){$0=$0"\t"total[$1]"\t"cov[$1]"\tfailed"}};print}' $1 $2 > result
  11. }

  12. caseResult $1 $2
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP