awk 调用shell 变量
2016-01-13 by dongnan
目标
使用 awk 调用外部的 shell 变量。
注意:awk是输入驱动的,所以下面的示例中都有一个输出为空的 echo
语句。
方式1
语法格式: awk '{action}' 变量名=变量值
,这样传入变量,可以在action中获得值。
设置shell变量
var1='this var1'
调用shell变量
echo | awk '{print test}' test="$var1"
this var1
这种方式在 BEGIN 或者 END的action不能获得,可以参考方式2。
方式2
语法格式: awk –v 变量名=变量值 [–v 变量2=值2 …] 'BEGIN{action}'
注意,用-v 参数传入变量可以在3种类型的 action
中都可以获得到,但顺序在 action
前面。
设置shell变量
var1='this var1'
调用shell变量
# Main
echo | awk -v test="$var1" '{print test}'
this var1
# BEGIN
echo | awk -v test="$var1" 'BEGIN{print test}'
this var1
# END
echo | awk -v test="$var1" 'END{print test}'
this var1