使用awk统计

在Linux下进行文本处理,没什么比sed/AWK更强大了。于是乎直接想到了用awk将报告中的”PASS”,”FAIL”数目统计一下即可。
代码示例如下:

1
2
3
4
5
PASS数目:
grep -o ".*tests executed in" reportName | awk 'BEGIN{sum=0}{if($1 ~ /PASS/)sum+=$2}END{print sum}'FAIL数目:
grep -o ".*tests executed in" reportName | awk 'BEGIN{sum=0}{if($1 ~ /FAIL/)sum+=$2}END{print sum}'

首先从报告文件中,取出匹配的最终运行概述信息,然后再用awk统计对应的条目。
此处用到了awk的BEGIN和END,顺便记录一下BEGIN和END的用法。

BEGIN和END

BEGIN和END顾名思义,在awk中,BEGIN只在开始处理之前运行一次,END只在结束处理之后运行一次,其余正常的文本行处理过程不运行。
非常适合用在做一些前置操作时使用,通常求和类初始化值、设定分隔符等经常会用。

语法:

1
awk '[BEGIN]{..}{..}[END{..}]' file

形式均为’{}’样,其中BEGIN和END语句块均可省略。

examples:
以统计数字文本(文本内容每行均为数字)为例

1
2
3
4
5
6
7
8
9
//1. 求和
awk 'BEGIN{sum=0}{sum+=$1}END{print sum}' file//2. 求均值
awk 'BEGIN{sum=0}{sum+=$1}END{print sum/NR}' file
NR为总记录数//3. 求最大值
awk 'BEGIN{max=0}{if($1 > max)max = $1}END{print max}'

配合grep、正则表达式以及条件表达式等使用,效果更佳。

awk BEGIN、END 很明白也很明了相关推荐

  1. JAVA中JVM的重排序详细介绍(写得很明白)

    刚刚在研究volatile变量的时候,涉及到重排序的概念,于是发现了这篇很好的文章,写得很简短很明白.所以转载一下. 原文地址:JAVA中JVM的重排序详细介绍 原文贴出来: 重排序通常是编译器或运行 ...

  2. 一段的冷笑话已经很直白的说明了三方的关系

    话说有一个笑话--曾经有一天,三个互联网的大佬喝茶聊天,百度说:"我有搜索引擎";优酷说:"额,我有搜库";淘宝说:"嘿嘿,不好意思,我有一淘&quo ...

  3. npm install 你很明白吗

    npm install 你很明白吗 dependencies 依赖 devDependencies 开发依赖 [当我们敲 npm install 的时候会安装哪些依赖,dependencies 和 d ...

  4. python写梦幻西游脚本防封号_梦幻西游:其实大家都很明白,这个类型的辅助脚本是不会被封号的...

    游戏的意义就在于它能够给人带来快乐,如果过多的掺杂其他的东西就失去了其本身的意义,大叫好,我是小三,每天给大家分享游戏中的八卦趣事. 帮派是梦幻中重要的组成部分之一,玩家提升自身的实力必须在帮派中进行 ...

  5. 汗!周老板的“我要-我想”和“7年”,让我感到塌实的内涵-Rachael 飘羽的忠告把一些东西也说的很明白了。剩下就是做,我想,我要了。

    Rachael 飘羽 最大梦想 拥有一家制造梦想的咖啡屋 一群真心朋友 一个爱我我爱的老公和可爱BB~~一个安稳幸福的家 做个简单快乐女人 说: 我说过,我想开慈善基金会.做点事,未必很大影响很大.但 ...

  6. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序...

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  7. linux shell awk BEGIN END 处理文本之前之后执行操作 简介

    目录 简介 1 最简单的action 既没有pattern 有没有options 2 awk是逐行处理 2.1 输出整行 2.2 输出最后一列 2.3 输出倒数第二列 3 pattern 3.1 be ...

  8. 寒门再难出贵子(很现实,很残酷,慎入)

    本文是一位银行的HR写的,他工作了10年,接待了一群到银行实习的实习生,然后观察他们发生的一系列的故事.像小说,但比我们看过的小说更精彩:像现实,但比我们了解的现实更残酷.文章来源天涯社区,作者:永乐 ...

  9. 很短...道理很深---于丹

    你--大学在谈恋爱 我--大学在奋斗  大一..你在看美女,我在看书  大二..你在约会 我在锻炼身体  大三..你在花前月下 我在埋头苦读  大四..你在乙醇里买醉 我在社会上积累经验  毕业了.. ...

最新文章

  1. Tomcat下conf下server.xml的文件配置信息
  2. Can’t connect to local MySQL server through socket的解决方法
  3. 【Arduino】使用C#实现Arduino与电脑进行串行通讯
  4. 惊呆了!颜值爆表的20+位阿里技术女神同一时间向你发出共事邀请!
  5. Hexo-fluid主题设置统计博客阅读量
  6. ECMall2.x模板制作入门系列之2(模板标签/语法)
  7. mac上配置mysql与redis server,并结合Pydev准备某爬虫环境
  8. 拓端tecdat|R语言广义线性模型GLM、多项式回归和广义可加模型GAM预测泰坦尼克号幸存者
  9. 使用kubeadm搭建的k8s集群修改node节点主机名
  10. 人工智能中的专家系统
  11. access和filemaker_四个替代微软Access的开源产品
  12. 网课答案查询单页源码+免费题库API接口
  13. 获取中国节假日信息api
  14. java隐藏字符_Java原生隐藏字符-工具类
  15. 银行贷款客户拉新活动分析——数据分析项目实战
  16. linux系统怎么设置为中午_Linux修改系统时间与时区
  17. php ppt生成图片不显示,ppt图片在word中不能正常显示,只显示为矩形框的解决方法...
  18. asterisk拨号计划中Hangup() App执行规则
  19. 8名清华北大研究生不出国,街道办事处上班!难道公务员比互联网还卷?
  20. python地铁查询系统_地铁python——函数

热门文章

  1. JAVA服务端实现页面截屏(附代码)
  2. 小米node2红外_Kubernetes监控在小米的落地
  3. 如何尽快掌握计算机技能,10个超级实用的电脑技巧,1秒完成操作,你一定要掌握!...
  4. 掌握萨克斯演奏技巧的主要4点
  5. iwebshop index.php,安全登录iwebshop管理员后台修改管理员后台登录路径
  6. 美智医疗java_美智医疗医院信息一体化集成平台
  7. 透过社群网站加强公益的力量 让爱心无国界传遍各地!
  8. 阿里微博双双IPO 最大受益者是新浪
  9. vs2017注释快捷键
  10. java导入Excel表格数据