spke="myvaribale"
var="cidr"
val=$azure_spoke2_vnet_cidr
clp="azure_vnets"
我将这些变量放在这个命令中:我不想写入这个, 而是想 myvaribale
在那里使用变量,但当我直接在命令中使用它时它不起作用。awk
$spke
awk -v spke="$spke" -v var="$var" -v val="$val" -v clp="$clp" '/variable/ { cloudp=gensub(/(^variable[[:space:]]")(.*)(".*$)/,"\\2",$0) } /myvaribale[[:space:]]=/ { spoke=$1 } spoke==spke && $1==var && cloudp ~ clp { $0=gensub(/(^.*=[[:space:]]")(.*)(".*$)/,"\\1"val"\\3",$0) }1'
答案1
首先,请注意/regexp/
是 的简写$0 ~ /regexp/
。
在$0 ~ /regexp/
表格中,你可以替换/regexp/
(其中斜线之间的内容是字符串常量)计算正则表达式使用字符串连接:
$0 ~ spke "[[:space:]]="
spke
您在命令中初始化的 awk 变量在哪里-v spke="myvariable"