分类: 系统运维
2008-07-03 09:05:13
gawk 'program' input-file1 input-file2 ... 程序代码较短
gawk -f program-file input-file1 input-file2... 程序较长
gawk程序是由很多的pattern和action所组成的:pattern {action}。功能是针对文件的每一行搜寻指定的模式(pattern),当一行里有符合指定的模式时,gawk就会在此一行执行指定的动作(action)。
一些系统变量:RS——记录分割符(默认:\n) FNR——目前的输入档案已经被读取的记录个数
NR——所有输入档案已经被读取的记录个数
FS——栏分隔符(默认:空白字符) NF——目前记录有多少个栏位
OFS——输出栏位分隔符(初始值:空格) ORS——输出记录分隔符(初始值:\n)
Pattern包括:
/regular expression/——正则表达式,如exp~/regexp/,exp!~/regexp/
/expression/——单一表达式,值不为0或字串不空时视为匹配
pat1,pat2——指定记录的范围
BEGIN、END——gawk在开始执行或要结束时会分别执行BEGIN或END指定的action
null——对于每个输入记录皆视为符合Pattern
Action包括:
Expression——算术运算、比较运算、布尔运算、条件运算等
控制语句——if、while、do-while、for、break、continue、next(next file)、exit
内建函数——数值方面的函数(sqrt、exp、log、sin、rand、srand)
字串方面的函数(index、length、match、sprintf、sub、gsub、substr、tolower、toupper)
输入输出的内建函数(close、system)
使用者定义的函数