awk (转)
来源:互联网 发布:mac远程控制mac 编辑:程序博客网 时间:2024/05/29 03:57
什么是awk?
awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。
AWK的功能是什么?
与sed和grep很相似,awk是一种样式扫描与处理工具。它几乎可以完成grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk的确拥有自己的语言:awk程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。
为什么使用awk?
使用awk的第一个理由是基于文本的样式扫描和处理是我们经常做的工作,awk所做的工作有些象数据库,但与数据库不同的是,它处理的是文本文件,这些文件没有专门的存储格式,普通的人们就能编辑、阅读、理解和处理它们。而数据库文件往往具有特殊的存储格式,这使得它们必须用数据库处理程序来处理它们。既然这种类似于数据库的处理工作我们经常会遇到,我们就应当找到处理它们的简便易行的方法,UNIX有很多这方面的工具,例如sed 、grep、sort以及find等等,awk是其中十分优秀的一种。
使用awk的第二个理由是awk是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如UNIX天然的开发工具C语言及其延续C++就非常的优秀。但相对于它们来说,awk完成同样的功能要方便和简捷得多。这首先是因为awk提供了适应多种需要的解决方案:从解决简单问题的awk命令行到复杂而精巧的awk程序设计语言,这样做的好处是,你可以不必用复杂的方法去解决本来很简单的问题。例如,你可以用一个命令行解决简单的问题,而C不行,即使一个再简单的程序,C语言也必须经过编写、编译的全过程。其次,awk本身是解释执行的,这就使得awk程序不必经过编译的过程,同时,这也使得它与shell script程序能够很好的契合。最后,awk本身较C语言简单,虽然awk吸收了C语言很多优秀的成分,熟悉C语言会对学习awk有很大的帮助,但awk本身不须要会使用C语言——一种功能强大但需要大量时间学习才能掌握其技巧的开发工具。
使用awk的第三个理由是awk是一个容易获得的工具。与C和C++语言不同,awk只有一个文件(/bin/awk),而且几乎每个版本的UNIX都提供各自版本的awk,你完全不必费心去想如何获得awk。但C语言却不是这样,虽然C语言是UNIX天然的开发工具,但这个开发工具却是单独发行的,换言之,你必须为你的UNIX版本的C语言开发工具单独付费(当然使用D版者除外),获得并安装它,然后你才可以使用它。
基于以上理由,再加上awk强大的功能,我们有理由说,如果你要处理与文本样式扫描相关的工作,awk应该是你的第一选择。在这里有一个可遵循的一般原则:如果你用普通的shell工具或shell script有困难的话,试试awk,如果awk仍不能解决问题,则便用C语言,如果C语言仍然失败,则移至C++。
- awk (转)
- [转]Awk学习笔记
- Awk学习笔记(转)
- AWK 学习(转)
- [转]Awk学习笔记
- awk的用法(转)
- [转]Awk学习笔记
- [转]Awk学习笔记
- awk学习(转)
- 【转】AWK 简明教程
- awk使用手册(转)
- 玩转AWK
- awk转置文本
- 【转】shell awk 入门
- 【转】awk简介
- awk学习 【转】
- awk命令【转】
- awk
- QOS (一)
- OpenCore内部调度
- UNICODE 编程入门
- Oracle下中文到拼音的整句转换
- C++ error "intellisense information will not be available for vc++" 2011.06.13
- awk (转)
- resource is out of sync with the file system 解决方法
- test() 方法用于检测一个字符串是否匹配某个模式.
- 浮点数在intel上的二进制存储结构,以及如何判断一个浮点数是否为整数
- eclipse axis2 reflect.invocationtargetexception
- ubuntu用户管理
- 溢出攻击的几个实例 (教学用例)
- 介绍和推荐AGG
- sizeof