
Durch die Verwendung dspmq | awk -F '[()]' '{print $2}'
erhalte ich eine Ausgabe in mehreren Zeilen. Ich möchte also die Ausgabe der ersten Zeile als betrachten vairable1
, die zweite Zeile als variable2
und so weiter ...
Wie kann ich das tun?
Antwort1
Angenommen, Sie meinen awk
Variablen, dann wäre es sinnvoller, ein Array zu verwenden. Wie:
dspmq | awk -F '[()]' '
{variable[NR] = $2}
END {
print "first line: "variable[1]", third line: "variable[3]
}'
Wenn du meinstHülseVariable, könnten Sie Folgendes tun:
eval "$(dspmq | awk -F '[()]' -v q="'" '
function shquote(s) {
gsub(q, q "\\" q q, s)
return q s q
}
{print "variable"NR"="shquote($2)}'
)"
Wenn Sie die bash
Shell verwenden, können Sie ein Array verwenden, das Sie mit Folgendem füllen können:
readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')
Beachten Sie, dass die Array-Indizes in bash
(wie in ksh
dessen Design es kopiert wurde) bei 0 statt bei 1 (erste Zeile in ${variable[0]}
) beginnen.
Mit zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
(erste Zeile in $variable[1]
)