免费注册 查看新帖 |

Chinaunix

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

[文本处理] 关于行内容匹配的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-02-13 11:18 |只看该作者
回复 10# jason680

其实事情是这样的

我解析了一个服务器日志文件 然后得出一些数据要与我的标准进行比较
     -------------------------------------------------------
    |  /vobs/rru/rsl/acl/tacl:TEST RESULT        
    |-------------------------------------------------------
    |   3 cases passed
    |-------------------------------------------------------
    |   555:  =========== gcov_run : Coverage of acl = 57.45%  ===========
    -------------------------------------------------------
    -------------------------------------------------------
    |  /vobs/rru/rsl/ampcontrol/tampcontrol:TEST RESULT        
    |-------------------------------------------------------
    |   Run: 3   Failure total: 2   Failures: 2   Errors: 0
    |-------------------------------------------------------
    |   592:  =========== gcov_run : Coverage of ampcontrol = 2.73106% ===========
    -------------------------------------------------------
类似上面的数据 假设第一种情况我要解析出 3 和 57.45%  第二种情况我要解析出 3  2  和  2.73106%

我的标准存放在一个文本文件中
module          Total        Passed        Cov.
acl                    3                              96.00%
ampcontrol    3                <=1              83.00%
然后我要导入我的标准 第一个是acl模块  解析出来的是 3和 57.45% 小于标准不符合要求  然后会得出判定 不合格
                               第二个模块是ampcontrol  解析出来的是 3 2 2.73106% 小于标准不符合要求  然后会得出判定 不合格
然后我将结果 存放到新的文件中 用下面的格式
module          Total        Passed        Cov.
acl                    3                              96.00%      3                  57.45%     failed
ampcontrol    3                <=1              83.00%      3      2       2.73106%     failed
我不知道如何实现

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
12 [报告]
发表于 2014-02-13 11:48 |只看该作者
本帖最后由 jason680 于 2014-02-13 11:50 编辑

回复 11# 说不过去

$ cat module
module          Total        Passed        Cov.
acl                    3                              96.00%
ampcontrol    3                <=1              83.00%

$ cat log
-------------------------------------------------------
|  /vobs/rru/rsl/acl/tacl:TEST RESULT        
|-------------------------------------------------------
|   3 cases passed
|-------------------------------------------------------
|   555:  =========== gcov_run : Coverage of acl = 57.45%  ===========
-------------------------------------------------------
-------------------------------------------------------
|  /vobs/rru/rsl/ampcontrol/tampcontrol:TEST RESULT        
|-------------------------------------------------------
|   Run: 3   Failure total: 2   Failures: 2   Errors: 0
|-------------------------------------------------------
|   592:  =========== gcov_run : Coverage of ampcontrol = 2.73106% ===========
-------------------------------------------------------

$ awk 'FNR==NR{f[NR]=$0;a[NR]=$NF;L[$1]=NR;N=NR;next}/passed/{n=$2"\t"}/Run:/{n=$3"\t"$6}/%/{p=$(NF-1);l=L[$8];f[l]=f[l]"\t"n"\t"p"\t";f[l]=(+p>+a[l])?f[l]"passed":f[l]"failed"}END{for(n=1;n<=N;n++)print f[n]}' module log
module          Total        Passed        Cov.
acl                    3                              96.00%        3                57.45%        failed
ampcontrol    3                <=1              83.00%        3        2        2.73106%        failed


   

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


    我先看看啊  我是新手 我试一下 先谢谢你

论坛徽章:
0
14 [报告]
发表于 2014-02-13 14:05 |只看该作者
本帖最后由 说不过去 于 2014-02-13 14:08 编辑

回复 12# jason680


   运用了您刚刚的方法   
   您所用的 $ cat log 和$ cat module  但我是这些数据存在文件中的  假设是运行脚本时 ./fengxi.sh data module  我这样传参的话 你写的脚本怎么修改一下 最后生成的数据重定向到新的文本result中 我已经写了命令解析data    产生了跟你一样log  取得变量名为a  module不变

求指导

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
15 [报告]
发表于 2014-02-13 14:56 |只看该作者
回复 14# 说不过去

please study those shell basic skill  

shell 十三問: 9) $@ 與 $* 差在哪?

shell 十三問 http://bbs.chinaunix.net/thread-218853-1-1.html
shell基础二十篇 http://bbs.chinaunix.net/thread-452942-1-1.html
   

论坛徽章:
0
16 [报告]
发表于 2014-02-13 15:05 |只看该作者
回复 15# jason680


    我一定会看的  其实我对shell只认识了几天 不好意思麻烦你了

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
17 [报告]
发表于 2014-02-13 22:53 |只看该作者
  1. [redhat@localhost 0213]$ echo $a

  2. [redhat@localhost 0213]$ echo $b

  3. [redhat@localhost 0213]$ eval `echo "|   Run: 13   Failure total: 12   Failures: 2   Errors: 0" | awk '{print "a="$3, "b="$6}'`
  4. [redhat@localhost 0213]$ echo $a
  5. 13
  6. [redhat@localhost 0213]$ echo $b
  7. 12
  8. [redhat@localhost 0213]$
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP