友情提示:本站最近进行了改版升级,如出现显示异常,请刷新页面或清除一下缓存!

  ARGC表示命令行上除了选项-F,-v,-f以及这些选项所对应的参数之外的所有参数的个数,如果awk命令是直接书写在命令行上,那ARGC在计算参数个数的时候也会忽略这个的。

  ARGV是一个数组,用于记录命令行上参数,其个数由ARGC指定,数组下标从0开始。

例如下面的示例程序,关于awk命令的语法请参考(awk命令语法详解):

CodingAnts@ubuntu:~/awk$ awk -F\t -v a=8 'BEGIN{print "ARGC="ARGC;for(i in ARGV) print "ARGV["i"]="ARGV[i]}' v14 v15
ARGC=3
ARGV[0]=awk
ARGV[1]=v14
ARGV[2]=v15

  示例中,awk命令是直接写在命令行上的,-F参数指定记录分割符为\t(Tab),-v定义并初始化一个变量啊,并赋值8,有两个输入文件v14和v15。awk命令实现打印awk内建变量ARGC和ARGV的值,从输出信息可以看出,ARGC=3,分别对应awk、v14和v15。

  值得注意的是,在ARGC=3的时候,只有两个输入文件。

  下面再看看把awk指令写入单独文件时候的情况,新建一个arg.awk,敲入上面的awk指令(就是单引号之间的内容)

CodingAnts@ubuntu:~/awk$ cat arg.awk
BEGIN{
	print "ARGC="ARGC;
	for(i in ARGV)
		print "ARGV["i"]="ARGV[i]
}
CodingAnts@ubuntu:~/awk$ awk -F\t -v a=8 -f arg.awk v14 v15
ARGC=3
ARGV[0]=awk
ARGV[1]=v14
ARGV[2]=v15

  可以看出,输出信息和第一个示例程序一样

转载请注明:Coding Ants » awk内建变量示例详解之ARGC、ARGV

相关文章

我来说说

(便于我们更好的交流)

没有交流就没有进步,在此输入您对本文的看法!
取消