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'
Во-первых, обратите внимание, что /regexp/
— это сокращение от $0 ~ /regexp/
.
В форме $0 ~ /regexp/
вы можете заменить /regexp/
(где слэш между косыми чертами представляет собой строковую константу) на вычисленное регулярное выражение с использованием конкатенации строк:
$0 ~ spke "[[:space:]]="
где spke
— это переменная awk, которую вы инициализировали в команде с помощью -v spke="myvariable"