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