同様のインデックスを合計してbashで2つの配列を結合する方法は?

同様のインデックスを合計してbashで2つの配列を結合する方法は?

bashに次の2つの配列(または1つ以上の配列!)があるとします。

a=(1 0 1)
b=(0,1,1)

どのように組み合わせるのですか?

c=(1 1 2)

各要素を加えるとcが出ますか?

ベストアンサー1

まず、配列定義はbash配列,要素間にはなく、単に次のように定義されます。

a=(1 0 1)
b=(0 1 1)

同じインデックス内の要素の合計で新しい配列を作成するには、両方の配列インデックスの1つを繰り返します(両方の場合、配列の長さが同じであると仮定します)。

for idx in "${!a[@]}"; do 
    c[idx]=$(( a[idx] + b[idx] ))
done

繰り返しインデックスを使用することに加えて、${!a[@]}伝統的なCスタイルのforループを使用して配列の長さを繰り返すこともできます。

for (( idx=0; idx < ${#a[@]}; idx++ )); do 

最後に、結果を新しい配列に印刷するには、次のようにします。

printf '%s\n' "${c[@]}"

おすすめ記事