awk是一种程序语言,对文档资料的处理具有很强的功能。
gawk 是GNU计划下所做的awk,gawk 最初在1986年完成,之后不断地被改进、更新。
gawk的主要功能:
awk 的主要功能是针对文件的每一行( l i n e ),也就是每一条记录,搜寻指定的格式。当某一行符合指定的格式时,gawk 就会在此行执行被指定的动作。gawk 依此方式自动处理输入文件的每一行直到输入文件档案结束。
1、根据要求选择文件的某几行,几列或部分字段以供显示输出。
2、以一个功能十分强大的方式过滤输出文档。
3、根据文档中的数值进行计算。
4、根据某一个文档的信息准备格式化输出。
如何执行gawk程序:
基本上有两种方法可以执行g a w k程序。
如果gawk 程序很短,则可以将gawk 直接写在命令行,如下所示:
gawk 'program' input-file1 input-file2 ...
其中program 包括一些pattern 和a c t i o n。
如果gawk 程序较长,较为方便的做法是将gawk 程序存在一个文件中,
gawk 的格式如下所示:
gawk -f program-file input-file1 input-file2 ...
gawk 程序的文件不止一个时,执行gawk 的格式如下所示:
gawk -f program-file1 -f program-file2 ... input-file1 input-file2 ...
字段、记录、文件和分割符
模式和动作
在gawk语言中每一个命令都由两部分组成:一个模式(pattern)和一个相应的动作(action)。只要模式符合,gawk就会执行相应的动作。其中模式部分用两个斜杠括起来,而动作部分用一对花括号括起来。例如:
/pattern1/ {action1}
//打印出包含nickname行的第四个字段
gawk '/nickname/{print $4}' im_account.templ
gawk '/nickname/{print $4} /uid/{print $1}' im_account.templ
比较运算和数值运算
gawk有很多比较运算符,下面列出重要的几个:
= = 相等
! = 不相等
> 大于
< 小于
> = 大于等于
< = 小于等于
例如:
gawk '$1>3' im_account.templ
内部函数
sqrt(x) 求x 的平方根
sin(x) 求x 的正弦函数
cos(x) 求x 的余弦函数
a t a n 2 ( x,y) 求x / y的余切函数
log(x) 求x 的自然对数
exp(x) 求x 的e 次方
int(x) 求x 的整数部分
rand() 求0 和1之间的随机数
srand(x) 将x 设置为r a n d ( )的种子数
阅读(1056) | 评论(0) | 转发(0) |