
를 사용하면 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
1(의 첫 번째 줄) 대신 0에서 시작한다는 점에 유의하세요 ${variable[0]}
.
와 함께 zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
( 의 첫 번째 줄 $variable[1]
)