如何替换数组中的值?

时间:2013-03-05 12:10:29

标签: bash

在以下数组中

ARR=(
"xxx" "xxxxxxxxxxxxxx"
"xxx" "xxxxxxxxxxxxxx"
"xxx" "xxxxxxxxxxxxxx"
"xxx" "ssssssssssssss"
"xxx" "xxxxxxxxxxxxxx"
"xxx" "xxxxxxxxxxxxxx"
)

我需要将值ssssssssssssss替换为xxxxxxxxxxxxxx

2 个答案:

答案 0 :(得分:5)

使用参数扩展和替换:

ARR=("${ARR[@]/ssssssssssssss/xxxxxxxxxxxxxx}")

答案 1 :(得分:0)

只需指定新值:

ARR[7]="xxxxxxxxxxxxxx"

如果您不知道“ssss ...”字符串的位置,您可以对数组进行交互:

i=0
for item in ${ARR[*]}
do
        if [ "$item" == "ssssssssssssss" ]
        then
                ARR[$i]="xxxxxxxxxxxxxx"
        fi
        ((i++));
done