bash 配列の要素を乗算し、配列要素を新しい値に設定する

bash 配列の要素を乗算し、配列要素を新しい値に設定する

Bashで配列の要素にaが含まれていることがわかった場合は、Kその要素に1000を掛けてその要素を製品に設定したいと思います。

for i in "${stats_array[@]}"
do
        if echo "$i" | grep -q K; then
                # set that value to that value times 1000
        fi
done

Bashスクリプトではどうなりますか?

私の配列は次のとおりです。

stats_array: 1, 54, 54K, 99

私はそれが次のように見えるようにしたいです:

stats_array: 1, 54, 54000, 99

ベストアンサー1

$ { IFS=, ; arr=( 1,54,54K,99k ); }

$ printf '%s\n' ${arr[@]}
1    
54    
54K    
99k

## note: enable extended pattern matching for [...] with 'shopt -s extglob'
$ rearr=( "${arr[@]//%[Kk]/000}" )
$ printf '%s\n' ${rearr[@]}
1    
54    
54000    
99000

## or write the changes to same array
$ arr=( "${arr[@]//%[Kk]/000}" )

また見なさい:Bashで配列に要素を追加/削除する方法は?

おすすめ記事