
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 variable2
y así sucesivamente...
¿Cómo podría hacer eso?
Respuesta1
Suponiendo que te refieres awk
a 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 bash
shell, 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 ksh
cuyo 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]
)