変数の自動割り当て

変数の自動割り当て

を使用すると、出力が複数行になります。したがって、最初の行の出力を、2 番目の行の出力を などとdspmq | awk -F '[()]' '{print $2}'見なしたいと思います。 どうすればよいでしょうか。vairable1variable2

答え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 から始まることに注意してください${variable[0]}

zsh

variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")

( の最初の行$variable[1])

関連情報