gawk 命令行中的变量赋值是否需要跟在 -v 后面?

gawk 命令行中的变量赋值是否需要跟在 -v 后面?

来自 awk 编程语言

awk  [ -Fs]  'program'  optional list of filenames 
awk  [ -Fs]  -f progfile  optional list of filenames 

选项 -Fs 将字段分隔符变量 FS 设置为 s。如果没有文件名,则读取标准输入。 文件名可以采用 var=text 的形式,在这种情况下,它被视为对变量 var 的文本赋值,在该参数作为文件访问时执行。

在 Gawk 中,我看到变量赋值是在 option 之后指定的-v。我想知道不带选项的引用中描述的内容是否-v仍然适用于 Gawk?

谢谢。

答案1

是的。

该变量在块中不可用,因为赋值发生在“当该参数作为文件被访问时”,但这与所有其他实现BEGIN相同。awk

$ echo 'input data' | gawk -vvar1="hello" 'BEGIN { print var1, var2 } { print $0, var1, var2 }' var2='world!'
hello
input data hello world!

相关内容