命令列變數賦值

要從命令列分配變數,可以使用 -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