Передать переменную в команде 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
задан 17 December 2020 в 19:41

1 ответ

Во-первых, обратите внимание, что /regexp/ — это сокращение от $0 ~ /regexp/.

В форме $0 ~ /regexp/ вы можете заменить /regexp/ (где слэш между косыми чертами представляет собой строковую константу) на вычисленное регулярное выражение с использованием конкатенации строк:

$0 ~ spke "[[:space:]]="

где spke — это переменная awk, которую вы инициализировали в команде с помощью -v spke="myvariable"

0
ответ дан 17 December 2020 в 17:48

Другие вопросы по тегам:

Похожие вопросы: