を使用すると、dspmq | awk -F '[()]' '{print $2}'
複数行の出力を取得できます。ですから、出力の最初の行をとして処理し、vairable1
2番目の出力行を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]
)