一、主要 built-in 变量
RS - record separator
RT - record terminal
NR - number of records(by now to be seen)
FNR - file number records( total )
ORS - output record separator
FS - field separator
NF - number fields
FIELDWIDTHS - non-zero can cause FS ineffective
OFS - output field separator
RSTART, RLENGTH with match (~)
SUBSEP , subscript separator (used in Arrays)
二、 Arrays
in - (val in array)
delete arrayname[subscript] (delete one item)
delete arrayname (delete all)
三、变量类型和转换
两种类型: floating point numbers , strings
conversion: strtod(3), sprintf(3)
未初始化的变量要么为0,要么为""
CONVFMT = "%2.2f"
a = 12
b = a "" (强制字符串)
四、patterns / actions
patterns:
BEGIN
END
regular expression
五、正则表达式 / 字符类(character class)
c \c . ^ $ [a...] [^a...] r1|r2 + * ? (r) r{n[,][, m]} \Y \< \> \B \w \W
character class
[:alnum:] 等
六、运算符优先级
相比较于C语言比较特殊的运算符:
$ field引用
space 有字符串连接功能
~ (match) !~ (negated match)
in (array membership)
七、I/O操作
close
getline
next
nextfile
system
co-process //TODO
八、特殊文件
/dev/stdin
/dev/stdout
/dev/stderr
/dev/fd/n
九、数学函数
十、string 函数
asort
asorti
gensub
gsub
index
length
match
split
sprintf
strtonum
sub
substr
tolowwer
toupper
十一、时间函数
mktime
strftime
systime
十二、位操作函数
and、compl、or、 lshift、 xor、 rshift
十三、国际化函数
十四、user-defined 函数
自定义函数的函数名与(之间不能出现空格,防止和字符串连接语法冲突
built-in 函数不存在此问题
十五
加载动态共享库(extension("object", "function"))
十六、signals
信号处理方式:
SIGUSR1 (dump profile及函数调用栈, continue)
SIGHUP (dump profile及函数调用栈, exit)