《gawk编程实用指南》
1. 命令行参数与变量设置
在gawk中,有一个实用的特性,允许我们改变脚本的行为,却无需修改实际的脚本代码。比如,通过在命令行设置变量 n 的值,第一个示例可以显示文件中的第二个数据字段,第二个示例则能显示第三个数据字段。
不过,使用命令行参数来定义变量值存在一个问题。当设置变量时,在代码的 BEGIN 部分该变量值不可用。例如:
$ cat script2
BEGIN{print "The starting value is",n; FS=","} {print $n}
$ gawk -f script2 n=3 data1
The starting value is data13
data23
data33
要解决这个问题,可以使用 -v 命令行参数。它允许我们指定在代码的 BEGIN 部分之前就设置好的变量,且 -v 命令行参数必须放在命令行中的脚本代码之前。示例如下:
$ gawk -v n=3 -f script2 data1
The starting value is 3
data13
data23
data33
这样,在代码的 BEGIN 部分,变量 n 就包含了命令行中设置的值。
超级会员免费看
订阅专栏 解锁全文
39

被折叠的 条评论
为什么被折叠?



