测试技能积木-AWK的简要用法
做测试工作,经常要分析日志,有的时候活儿还很脏很累,比如抽取符合某些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的简要用法的更多相关文章
- awk 的一些用法
awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了 ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- 移动无线测试技能图谱skill-map
# 移动无线测试技能图谱 ## 常用IDE- Android * ADT * Android Studio- iOS * Xcode- Common * Atom * Sublime Text * V ...
- 测试技能图谱skill-map
# 测试技能图谱 ## 代码静态分析- Sonar- PMD- Infer- Android * findbugs * AndroidLint * CheckStyle- iOS * scanbuil ...
- awk的基本用法
最近遇到导入的csv文件首行为日期,但需要将日期作为列导入到数据库中,直接使用ctl文件好像无法实现,了解到awk这个强大的命令. 导入的CSV文件除了首行为日期,其他的都是格式相同的.需要将首行单独 ...
- Python测试框架pytest命令行参数用法
在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...
- AWK命令的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
- linux 磁盘IO测试工具:FIO (同时简要介绍dd工具测试)
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证.磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类. 目前主流的第三方IO测试工具有fio.iomete ...
- linux学习:sed与awk与tr用法整理
流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...
随机推荐
- linux 后台运行进程 fg bg ctrl+z nohup
fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...
- bsearch的溢出问题
在java中为了避免 low+high溢出,可以用无符号右移:正数高位补0,负数高位补1 int mid = (low + high) >>> 1; 如果是在c++中,那么需要先转换 ...
- sql server 导出的datetime结果 CAST(0x00009E0E0095524F AS DateTime) 如何向mysql,oracle等数据库进行转换
1. 处理 sql server 导出的 datetime 类型的字段 在进行sql server向mysql等其他数据进行迁移数据时,会发现使用sql server导出的datetime类型的结果是 ...
- JPA一对多关联
关于JPA一对多关联这里使用Order与OrderItem来模拟.一个Order可以关联多个OrderItem,而一个OrderItem只能关联一个Order.Order与OrderItem是一对多的 ...
- 设计模式C#实现(三)——外观模式
外观模式——提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口让子系统更容易使用. 一个外观包含了为许多对象和对他们的操作,使得重复这些操作更方便. 假如客厅里有灯(Lights ...
- Error && MFC
Error:MSB6006 "rc.exe" exited with code 2. 目录含有中文 Error:no instance of overloaded function ...
- linux进程间通信-XSI IPC
一 什么是XSI IPC 有三种 IPC我们称作XSI IPC,即消息队列.信号量以及共享存储器(共享内存),它们之间有很多相似之处. 二 标识符和键 每个内核中的 IPC结构(消息队 ...
- C# Graphic 绘制圆、三角形、椭圆、图片
在form和panel上可以绘制图形,线段,圆,文字,图形等等. 绘制代码必须放在OnPaint()函数里面,因为窗体刷新的时候,都会调用该函数,重新刷新所绘的图. 示例代码在Panel上绘制图形来简 ...
- fiddler对手机进行抓包
1.安装fiddler web debugger 2.Tools -->telerik fiddler options-->connections,勾选allow remote compu ...
- java 20 -10 字节流四种方式复制mp3文件,测试效率
电脑太渣,好慢..反正速率是: 高效字节流一次读写一个字节数组 > 基本字节流一次读写一个字节数组 > 高效字节流一次读写一个字节 > 基本字节流一次读写一个字节 前两个远远快过后面 ...