-
这几天在字符串文本处理,用到了awk,感觉真的很不错,功能很强大,特别是在做大数据量的文本和字符串处理的时候,效率很高,比用sed和vim中的替换命令方便很多,下面举几个例子说说吧:
awk -F "&" '$2 !~/catId/' total >cat.txt
----处理totle文件中以“&”符号分割,并且第2列以catId开头的字段的行内容,保存在cat.txt文件中
... -
第二部分
在这篇 awk 简介的续集中,Daniel Robbins 继续探索 awk(一种很棒但有怪异名称的语言)。Daniel 将演示如何处理多行记录、使用循环结构,以及创建并使用 awk 数组。阅读完本文后,您将精通许多 awk 的功能,而且可以编写您自己的功能强大的 awk 脚本。
多行记录
awk 是一种用于读取和处理结构化数据(如系统的 /etc/passwd 文件)的极佳工具。/etc/passwd 是 UNIX 用户数据库,并且是用冒号定... -
条件语句
awk 还提供了非常好的类似于 C 语言的 if 语句。如果您愿意,可以使用 if 语句重写前一个脚本:
{ if ( $5 ~ /root/ ) { print $3 }}
这两个脚本的功能完全一样。第一个示例中,布尔表达式放在代码块外面。而在第二个示例中,将对每一个输入行执行代码块,而且我们使用 if 语句来选择执行 print 命令。这两个方法都可以使用,可以选择最适合脚本其它部分的一种方法。
以下是更复杂的 awk if ... -
通用线程:Awk 实例
作者:donggua1 发表时间:2002/08/29 08:24am
通用线程:Awk 实例
Daniel Robbins (drobbins@gentoo.org)
第一部分
Awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 awk 演... -
附录:
1.awk的常规表达式元字符
\\ 换码序列
^ 在字符串的开头开始匹配
$ 在字符串的结尾开始匹配
. 与任何单个字符串匹配
[ABC] 与[]内的任一字符匹配
[A-Ca-c] 与A-C及a-c范围内的字符匹配(按字母表顺序)
[^ABC] 与除[]内的所有字符以外的任一字符匹配
Desk|Chair 与Desk和Chair中的任一个匹配
[AB... -
也可以使getline保存输入数据在一个字段中,而不是通过使用getline variable的形式处理一般字段。当使用这种方式时,NF被置成0,FNR和NR被增值。
用户也可以使用getline<"filename"方式从一个给定的文件中输入数据,而不是从命令行所列内容输入数据。此时,getline将完 成一般字段分离(设置字段变量$0和NF)。如果文件不存在,返回-1,成功,返回1,返回0表示失败。用户可以从给定文件中读取数据到一个变量中,也可 以用s... -
在gawk中允许将function省略为func,但其它版本的awk不允许。函数名必须是一个合法的标志符,参数表中可以不提供参数(但在调用函数时函数名后的一对括号仍然是不可缺少的),也可以提供一个或多个参数。与C语言相似,awk的参数也是通过值来传递的。
在awk中调用函数比较简单,其方法与C语言相似,但awk比C语言更为灵活,它不执行参数有效性检查。换句话说,在你调用函数时,可以列出比函数预计 (函数定义中规定)的多或少的参数,多余的参数会被awk所忽略,而不足的参数,awk将它... -
算与判断:
作为一种程序设计语言所应具有的特点之一,awk支持多种运算,这些运算与C语言提供的基本相同:如+、-、*、/、%等等,同时,awk也支持C语言中 类似++、--、+=、-=、=+、=-之类的功能,这给熟悉C语言的使用者编写awk程序带来了极大的方便。作为对运算功能的一种扩展,awk还提供了 一系列内置的运算函数(如log、sqr、cos、sin等等)和一些用于对字符串进行操作(运算)的函数(如length、substr等等)。这些函 数的引用大大的提高了awk的运算功能。... -
awk的记录、字段与内置变量:
前面说过,awk处理的工作与数据库的处理方式有相同之处,其相同处之一就是awk支持对记录和字段的处理,其中对字段的处理是grep和sed不能实现 的,这也是awk优于二者的原因之一。在awk中,缺省的情况下总是将文本文件中的一行视为一个记录,而将一行中的某一部分作为记录中的一个字段。为了操 作这些不同的字段,awk借用shell的方法,用$1,$2,$3...这样的方式来顺序地表示行(记录)中的不同字段。特殊地,awk用$0表示整个 行(记录)。不同... -
使用awk的第三个理由是awk是一个容易获得的工具。与C和C++语言不同,awk只有一个文件(/bin/awk),而且几乎每个版本的UNIX都提 供各自版本的awk,你完全不必费心去想如何获得awk。但C语言却不是这样,虽然C语言是UNIX天然的开发工具,但这个开发工具却是单独发行的,换言 之,你必须为你的UNIX版本的C语言开发工具单独付费(当然使用D版者除外),获得并安装它,然后你才可以使用它。
基于以上理由,再加上awk强大的功能,我们有理由说,如果你要处理与文本样式扫描相关... -
很早(其实也不算早,就是去年的时候)就听说了AWK,就想学习学习,但是苦于时间精力有限,再加上自己天生的习惯—— 懒惰,导致到现在对于awk还是只闻其名,未见其功。今天浏览同事的blog,无意中看到关于awk的一些资料,赶紧“偷”来整理好,放在我的blog 上,等有时间再慢慢仔细咀嚼下。
什么是AWK?
你可能对UNIX(Linux)比较熟悉了,淡你可能对AWK很陌生,这一点也不奇怪,的 确,预期优秀的功能相比,AWK还远没达...
共1页 1







