命令行变量赋值

要从命令行分配变量,可以使用 -v

$ awk -v myvar="hello" 'BEGIN {print myvar}'
hello

请注意,等号周围没有空格。

这允许使用 shell 变量:

$ shell_var="hello"
$ awk -v myvar="$shell_var" 'BEGIN {print myvar}'
hello

此外,这允许设置控制 awk 的内置变量:

查看 FS(字段分隔符)的示例:

$ cat file
1,2;3,4
$ awk -v FS="," '{print $2}' file
2;3
$ awk -v FS=";" '{print $2}' file
3,4

或者使用 OFS(输出字段分隔符):

$ echo "2 3" | awk -v OFS="--" '{print $1, $2}'
2--3
$ echo "2 3" | awk -v OFS="+" '{print $1, $2}'
2+3