를 사용하면 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
복제된 디자인과 마찬가지로) 의 배열 인덱스는 ${variable[0]}
1(첫 번째 행) 대신 0에서 시작합니다.
그리고 zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
(첫번째 줄 $variable[1]
)