做测试工作,经常要分析日志,有的时候活儿还很脏很累,比如抽取符合某些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. WCF使用net.tcp寄宿到IIS中(转)

    一.IIS部分 环境:Windows Server 2008 R2 1.安装WAS,如下图所示:   2.网站net.tcp协议绑定,如下图所示:   3.网站启用net.tcp,如下图所示:   二 ...

  2. 谈谈Java的集合组件

    让我们一起谈谈Java的集合组件 我们在使用Java的时候,都会遇到并使用到Java的集合.在这里通过自己的理解和网上的资源对Java的集合方面的使用做一个简单的讲解和总结. Java主要分为3个集合 ...

  3. ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl (转)

    ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageC ...

  4. Linux学习之六——使用vi和vim

    一.vi的三种模式和相互切换 1. 一般模式 1) 移动光标 可以用箭头键,Page Up, Page Down, Home,End等按键移动光标 G,移动到档案最后一行 1G,gg,移动到档案第一行 ...

  5. Android之TelephonyManager类的方法详解

    TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取 ...

  6. [转载]iTOP-4412开发板搭建最小linux系统

    本文转迅为电子论坛:http://www.topeetboard.com 最小linux系统所需资料下载:http://pan.baidu.com/s/1kTNan0j 开发板不仅可以运行Androi ...

  7. Linux NFS 介绍

    由SUN开发,用于在不同的系统之间使用,所以其设计与主机系统无关,用户想使用远程文件时,只需要mount –t nfs就可以把远程的文件拿到本地,像使用本地文件一样使用,非常方便. 它采用C/S架构, ...

  8. 如何判断两个String是否是Anagrams_java实现

    Anagrams:是颠倒字母顺序的字符串 本文提供三个方法,分别分析时间空间复杂度 方法一:暴力遍历 时间复杂度:O(n^2) 方法二:基于排序算法,Sorting的时间复杂度是O(n*log(n)) ...

  9. POJ 1269 Intersecting Lines --计算几何

    题意: 二维平面,给两条线段,判断形成的直线是否重合,或是相交于一点,或是不相交. 解法: 简单几何. 重合: 叉积为0,且一条线段的一个端点到另一条直线的距离为0 不相交: 不满足重合的情况下叉积为 ...

  10. POJ 2001 Shortest Prefix

    字典树基本题. 代码: #include <iostream> #include <cstdio> #include <cstring> #include < ...