在 awk 命令中传递变量

在 awk 命令中传递变量
  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"

相关内容