一、变量
$0 完整的输入记录
FILENAME:当前文件名
FS:输入域分隔符(默认是一个空格)
OFS:输出文件分隔符(字段分隔符)(默认值是一个空格)
RS:输入记录分隔符(默认是一个换行符)
ORS:输出记录的分隔符(行分隔符)(默认值是一个换行符)
NF:当前记录的字段数
NR:当前文件的记录数
FNR:和NR类似,打开一个文件二者功能一样;只是针对多文件,新打开文件FNR遍从1累加记录
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ARGC:命令行参数的数目;是一整数,代表命令行上除了选项-v, -f 及其对应的参数之外所有参数的个数
ARGV:包含命令行参数字符串数组,ARGV[0],ARGV[1]....ARGV[ARGC-1]分别代表命令行上相对应的参数
SUBSEP:数组下标分隔符(默认值是\034)
RSTART:由match函数所匹配的字符串的第一个位置
ENVIRON:环境变量关联数组

echo 10 100 1000 10000 |awk '{OFS="\n";print $1,$2,$3,$4}'
awk 'BEGIN{FS=":";ORS="\n"}{ print NR,$1,$NF}' /etc/passwd
awk 'BEGIN{FS=":";ORS="\n"}{ print NR,$1,$NF}' /etc/passwd
awk 'BEGIN{for(i=0;i<ARGC;i++) print ARGV[i]}'  a.txt b.txt c.txt
awk 'BEGIN{for(i=0;i<ARGC;i++) print ARGV[i-1]}'  a.txt b.txt c.txt
awk 'BEGIN{ay[1,10]=5;ay[10,2]=12}END{ for(k in ay) {split(k,idx,SUBSEP);print idx[1],idx[2],ay[idx[1],idx[2]];}}'   /dev/null

二、运算符
1、赋值运算符:
= += -= *= /= %= ^=  **=     赋值语句
2、逻辑运算符
||    逻辑或
&&     逻辑与
3、正则运算符
~ ~!     匹配正则表达式和不匹配正则表达式
4、关系运算符
< <= > >= != ==     关系运算符
5、算术运算符
+ -     加,减
* / &     乘,除与求余
+ - !     一元加,减和逻辑非
^ ***     求幂
++ --     增加或减少,作为前缀或后缀
6、其它运算符
$     字段引用
空格     字符串连接符
?:     C条件表达式
in     数组中是否存在某键值
运算符 用途
------------------
x^y x的y次幂
x**y 同上
x%y 计算x/y的余数(求模)
x+y x加y
x-y x减y
x*y x乘y
x/y x除y
-y 负y(y的开关符号);也称一目减
++y y加1后使用y(前置加)
y++ 使用y值后加1(后缀加)
--y y减1后使用y(前置减)
y-- 使用后y减1(后缀减)
x=y 将y的值赋给x
x+=y 将x+y的值赋给x
x-=y 将x-y的值赋给x
x*=y 将x*y的值赋给x
x/=y 将x/y的值赋给x x%=y 将x%y的值赋给x
x^=y 将x^y的值赋给x
x**=y 将x**y的值赋给x