1. ARGC、ARGV
ARGC表示变量的个数(Argument Count)
ARGV表示变量内容(Argument Variable)
awk 'BEGIN{
for (i = 0; i < ARGC; ++i){
printf "args[%d]=%s\n", i, ARGV[i]
}
}' arg0, arg1, arg2, arg3, arg4
我们发现,awk是第一个参数,其他参数是从1开始的:
这里使用ARGC进行了循环,ARGV是个数组,可以遍历。
2. 格式化符号CONVFMT
awk 'BEGIN{print "FORMAT=", CONVFMT}'
3. 环境变量ENVIRON
使用ENVIRON获取环境变量,具体环境变量的值可以执行env查看
awk 'BEGIN{print ENVIRON["USER"]}'
4. 获取文件名称FILENAME
awk 'END{print FILENAME}' marks.txt
5. NF、NR、FNR
NF表示列数(Number Field)
NR表示行数(Number Row)
FNR与NR类似,在多个文件时,不同文件单独编号
打印列数和数据:
打印行号和数据:
6. FS、RS、OFS、ORS、OFMT
FS表示输入列分割符号(Field Split), 默认是空格
RS表示输入换行符(Row Split),默认是\n
OFS是输出列分割符号(Field Split), 默认是空格
ORS表示输出换行符(Row Split),默认是\n
OFMT表示输出格式化,默认%.6g
7. RSTART与RLENGTH
RSTART表示第一个匹配的位置
RLENGTH表示第一个匹配的长度
8. $n获取第几列