做测试工作,经常要分析日志,有的时候活儿还很脏很累,比如抽取符合某些pattern的行,重新格式化等等。有的时候,我们需要也创造一些测试用数据文件。基于上述两种原因,在Unix Like 系统上,一些古老的字处理程序就显得非常有用了,这些古老的程序包括 grep,sed,awk等,它们不用安装(已经成为了操作系统的标准),使用方便,效率很高,能直接跟管道,重定向之类的shell操作并用,能嵌入到shell脚本中处理复杂情况。这些特性能够帮助测试人员迅速完成文本相关工作。每当我看到有测试人员还在傻傻的用UltraEdit从ftp上download大文本到本地,然后费劲的打开,修改,写程序解析。就忍不住要跟他们说:学学直接在shell下完成工作吧,花些时间学学vi,学学这些字符操作的工具,学学写shell吧,这些比我们年龄还要大的古老工具一点也不落后,反而是高效的利器。本次会先从AWK这个相对偏僻的工具说起。

首先花一分钟时间了解AWK是干嘛的:AWK是这个程序3个作者名字首字母的缩写(很帅的命名方法)。它的主要作用是能够方便的对字符分割文件做各种各样的处理,如筛选,重新格式化等(当然,它能做的远不止如此)。如果想迅速了解AWK的使用,强烈建议看左耳朵耗子的这篇文章:http://coolshell.cn/articles/9070.html 这是我看到的写的最清晰的一篇介绍AWK用法的文章。要想深入理解的话,下面这个链接是一篇很不错的教程:http://www.grymoire.com/Unix/Awk.html 如果想真正用好它,肯定要通读用户手册:http://www.gnu.org/software/gawk/manual/gawk.html   其实内容也不多,10个小时以内就能看完,学成后你肯定会对字符处理有新的感受。

由于内建了流程控制,变量支持,正则表达式支持,内建函数支持等一系列特性,我们可以说AWK是一门字符处理的DSL了。它远比你想象的要强大很多很多。举例一种玩法:有同学用它和shell结合写了个测试数据生成器,根据输入模式批量生成SQL,堪比DataFactory,还更加合适自己的项目,更加高效。

最后要说的是:很多Granpa们留下的东西是非常棒的,不要因为他们太古老就扔掉它们。

测试技能积木-AWK的简要用法的更多相关文章

  1. awk 的一些用法

    awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了 ...

  2. Shellz中awk的简单用法

    其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...

  3. 移动无线测试技能图谱skill-map

    # 移动无线测试技能图谱 ## 常用IDE- Android * ADT * Android Studio- iOS * Xcode- Common * Atom * Sublime Text * V ...

  4. 测试技能图谱skill-map

    # 测试技能图谱 ## 代码静态分析- Sonar- PMD- Infer- Android * findbugs * AndroidLint * CheckStyle- iOS * scanbuil ...

  5. awk的基本用法

    最近遇到导入的csv文件首行为日期,但需要将日期作为列导入到数据库中,直接使用ctl文件好像无法实现,了解到awk这个强大的命令. 导入的CSV文件除了首行为日期,其他的都是格式相同的.需要将首行单独 ...

  6. Python测试框架pytest命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

  7. AWK命令的用法

    1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...

  8. linux 磁盘IO测试工具:FIO (同时简要介绍dd工具测试)

    FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证.磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 目前主流的第三方IO测试工具有fio.iomete ...

  9. linux学习:sed与awk与tr用法整理

    流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...

随机推荐

  1. 【AdaBoost算法】积分图代码实现

    一.积分图介绍 定义:图像左上方的像素点值的和: 在Adaboost算法中可用于加速计算Haar或MB-LBP特征值,如下图: 二.代码实现 #include <opencv/highgui.h ...

  2. SoapUI接口测试实例(webservice接口)

    接口测试步骤 注:以测试queryHistoryAccepts接口作举例. 1. 用户登录获取SessionKey实体信息 注:由于大部分的接口都需要SessionKey实体的信息,因此测试那些接口都 ...

  3. Openstack python api 学习文档 api创建虚拟机

    Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...

  4. PL/SQL之--变量

    一.PL/SQL 简介 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是oracle对sql语句的一种扩展,在普通SQL语句的使用上 ...

  5. try catch finally 用法

    trycatchfinally 1.将预见可能引发异常的代码包含在try语句块中.2.如果发生了异常,则转入catch的执行.catch有几种写法:catch这将捕获任何发生的异常.catch(Exc ...

  6. c#实现验证码功能

    一.验证码简介 验证码功能一般是用于防止批量注册的,不少网站为了防止用户利用机器人自动注册.登录.灌水,都采用了验证码技术.所谓验证码,就是将一串随机产生的数字或字母或符号或文字,生成一幅图片, 图片 ...

  7. 数据结构Java实现02----线性表与顺序表

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. Java虚拟机详解03----常用JVM配置参数

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. Mecanim 学习概述

    前言 我要逐个击破Unity中的知识点,包括1.Mecanim 2.NavMesh 3.4.3之后新的GUI系统 4.新的2D功能 5.Shader 6.性能及后期处理 早在2013年初的时候就听说过 ...

  10. Android自定义进度条颜色

    这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\ 下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml ? 1 ...