是否可以使用位置索引更改字符串字符。
例如:
Myvar="abcd"
echo ${Myvar:0:1}
给出第一个字符“a”
我可以将第一个字符改为“z”吗?
简单尝试将变量分配给 {Myvar:0:1} 没有起作用。
答案1
使用sed
流编辑器,您可以执行
echo $Myvar | sed s/./z/0
否则,你可以直接通过
Myvar="abcd"
len=`expr length "$Myvar"`
len=$((len-1))
Ind=2
character="z"
if [[ $Ind -eq 0 ]]
then
Myvar="$character${Myvar:1}"
elif [[ $Ind -eq $len ]]
then
Myvar="${Myvar:0:$((len-1))}$character"
else
Myvar="${Myvar:0:$Ind}$character${Myvar:$((Ind+1))}"
fi
echo $Myvar
然而,正如你所看到的,它不太优雅,如果你只使用sed