Asignación automática de variables

Asignación automática de variables

Al usarlo, dspmq | awk -F '[()]' '{print $2}'obtendré resultados en varias líneas. Así que quiero considerar la salida de la primera línea como vairable1, la segunda línea como variable2y así sucesivamente...
¿Cómo podría hacer eso?

Respuesta1

Suponiendo que te refieres awka variables, tendría más sentido usar una matriz. Como:

dspmq | awk -F '[()]' '
  {variable[NR] = $2}
  END {
    print "first line: "variable[1]", third line: "variable[3]
  }'

Si te refieres acaparazónvariable, podrías hacer:

eval "$(dspmq | awk -F '[()]' -v q="'" '
  function shquote(s) {
    gsub(q, q "\\" q q, s)
    return q s q
  }

  {print "variable"NR"="shquote($2)}'
)"

Si usa el bashshell, podría usar una matriz que podría completar con:

readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')

Tenga en cuenta que los índices de matriz en bash(como en kshcuyo diseño se copió) comienzan en 0 en lugar de 1 (primera línea en ${variable[0]}).

Con zsh:

variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")

(primera línea en $variable[1])

información relacionada