__begin__
逻辑控制:
break,
continue,
next
do while,
while,
exit,
if ... [else ...],
for(;;) ...;
for(var in arr) ...
return
支持基本正则表达式,逻辑与或非
5个输入输出函数
close, getline, print, printf, system
8个字符串处理函数
gsub, sub, substr, index, length, match, split, sprintf
9个数学计算函数
atan2, cos, exp, int, log, rand, sin, sqrt, srand
14个内置变量:
属性 说明
$0 当前记录(作为单个变量)
$1~$n 当前记录的第n个字段,字段间由FS分隔
示例 《awk的文件处理方式——记录和字段》
FS 输入字段分隔符。缺省值是空格。FS特殊变量可以有两种附加的值:
如果 FS 设置为单个字符,那么字段由该字符的每个单个具体值隔开。
如果 FS 设置为一个扩展正则表达式,那么字段由与扩展正则表达式匹配的每个序列的具体值隔开。
NF 当前记录中的字段个数,最大数 99 个
NR 当前输入记录的个数,从1开始,BEGIN模式中值为0,END模式中值为最后处理的记录的编号
RS 输入记录分隔符(缺省值是换行字符)
OFS 输出字段分隔符(缺省值是空格)
ORS 输出记录分隔符(缺省值是换行字符)
ARGC 命令行参数个数
ARGV 命令行参数数组
FILENAME 当前输入文件的名字
IGNORECASE 如果为真,则进行忽略大小写的匹配
ARGIND 当前被处理文件的ARGV标志符
CONVFMT 在输出语句中将数字转换为字符串的 printf 格式。缺省值为“%.6g”
ENVIRON UNIX环境变量
ERRNO UNIX系统错误消息
FIELDWIDTHS 输入字段宽度的空白分隔字符串
FNR 当前记录数
OFMT 数字的输出格式 %.6g
RSTART 被匹配函数匹配的字符串首
RLENGTH 被匹配函数匹配的字符串长度
SUBSEP \034
缺陷:不支持二进制文件处理;位运算不支持; 函数副作用大没有局部变量;不能内部地脚本调用另一个脚本(需要新启动进程);
__end__