
Ao usar, dspmq | awk -F '[()]' '{print $2}'
obterei saída em várias linhas. Então, quero considerar a saída da primeira linha como vairable1
, a saída da segunda linha como variable2
e assim por diante...
Como eu poderia fazer isso?
Responder1
Supondo que você se refira awk
a variáveis, faria mais sentido usar um array. Como:
dspmq | awk -F '[()]' '
{variable[NR] = $2}
END {
print "first line: "variable[1]", third line: "variable[3]
}'
Se você dizconchavariável, você poderia fazer:
eval "$(dspmq | awk -F '[()]' -v q="'" '
function shquote(s) {
gsub(q, q "\\" q q, s)
return q s q
}
{print "variable"NR"="shquote($2)}'
)"
Se estiver usando o bash
shell, você pode usar um array que pode ser preenchido:
readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')
Cuidado, pois os índices da matriz bash
(como em ksh
cujo design ele foi copiado) começam em 0 em vez de 1 (primeira linha em ${variable[0]}
).
Com zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
(primeira linha em $variable[1]
)