
Используя dspmq | awk -F '[()]' '{print $2}'
я получу вывод в несколько строк. Поэтому я хочу рассматривать вывод первой строки как vairable1
, вывод второй строки как variable2
и так далее...
Как я могу это сделать?
решение1
Если вы имеете в виду awk
переменные, то разумнее будет использовать массив. Например:
dspmq | awk -F '[()]' '
{variable[NR] = $2}
END {
print "first line: "variable[1]", third line: "variable[3]
}'
Если ты имеешь ввидуоболочкапеременная, вы можете сделать:
eval "$(dspmq | awk -F '[()]' -v q="'" '
function shquote(s) {
gsub(q, q "\\" q q, s)
return q s q
}
{print "variable"NR"="shquote($2)}'
)"
При использовании bash
оболочки можно использовать массив, который можно заполнить:
readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')
Обратите внимание, что индексы массива в bash
(например, в ksh
чьем дизайне он скопирован) начинаются с 0, а не с 1 (первая строка в ${variable[0]}
).
С zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
(первая строка в $variable[1]
)