命令行变量赋值
要从命令行分配变量,可以使用 -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