做测试工作,经常要分析日志,有的时候活儿还很脏很累,比如抽取符合某些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. Hibernate之Criteria的完整用法

    Criteria的完整用法 QBE (Query By Example) Criteria cri = session.createCriteria(Student.class); cri.add(E ...

  2. 【mysql】关于innodb中MVCC的一些理解

    一.MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代 ...

  3. spinner下拉列表

    xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:l ...

  4. jQuery事件绑定on、off 和one,取代bind, live, delegate

    jQuery最新版建议:最好用on来代替以前的bind, live, delegate,其中live是最不建议使用的. on和off的格式 on $(elements).on(events[, sel ...

  5. k-means算法初识

    基础知识: K-means聚类算法 聚类,简单地说就是把相似的东西分到一组.同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”. ...

  6. C# 遍历枚举类

    framework 4.0 环境下 方法 定义枚举类 判断枚举类中是否存在,若存在则输出 例子: Defined.QrCode.QrCodeType type;//枚举类 if (!Enum.TryP ...

  7. hiveserver2 with kerberos authentication

    Kerberos协议: Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-grantin ...

  8. Elastic search入门

    首先是下载elasticsearch https://www.elastic.co/downloads,解压: 然后下载了中文分析器ik,github上搜索elasticsearch-ik就能找到,h ...

  9. 怎样快速学会ZBrush 中的移动笔刷的运用

    本篇视频教程,进入ZBrush®最精彩章节,雕刻前我们需要认识的雕刻工具-笔刷.zbrush自带了多种笔刷供大家选择和使用,掌握和用好这些笔刷将让我们的雕刻工作更加自由.本课的内容将主要向大家介绍最基 ...

  10. UVA 11983 Weird Advertisement --线段树求矩形问题

    题意:给出n个矩形,求矩形中被覆盖K次以上的面积的和. 解法:整体与求矩形面积并差不多,不过在更新pushup改变len的时候,要有一层循环,来更新tree[rt].len[i],其中tree[rt] ...