awk使用ARGC和ARGV来在命令行中传入一些变量到awk脚本中。其中:
- ARGC包含传入awk脚本的参数的总数目
- ARGV为一个包含所有传入awk脚本的参数的数组,该数组下标从0到ARGC-1。
- 当你传入5个参数,ARGC的值为6
- ARGV[0]总是"awk"
下面简单的一个例子展示了ARGC和ARGV怎么工作的:
fengxi@ubuntu:~/bash/awk$ cat arguments.awk
BEGIN {
print "ARGC=", ARGC
for(i=0;i<ARGC;i++)
print ARGV[i]
}
fengxi@ubuntu:~/bash/awk$ awk -f arguments.awk arg1 arg2
ARGC= 3
awk
arg1
arg2
在gawk中,当前正在处理的文件是存储在ARGV数组中,该数组可在循环块中被访问。ARGIND是访问ARGV数组的下标去检索当前文件。当你在awk脚本中仅仅处理一个文件时,ARGIND的值为1,并且ARGV[ARGIND]会返回当前正在处理的文件名。