web-dev-qa-db-ja.com

ある位置で文字列の文字を置き換える方法

文字列のn番目の文字を置き換えたいとしたら、どうすればよいですか?

私はこのようなことを試しましたが、正しくありません:

#!/bin/bash
index= # let say 2
s='Hello'
echo ${s/$index/'a'} # This should print Healo
1
Eng.Fouad

高度なBashスクリプトガイド があり、部分文字列と連結を行う方法を示しています。

まあ言ってみれば:

#!/bin/bash
index=2
s=Hello
echo ${s:0:index-1}a${s:index}
4
mailq

sedを使用した別の解決策:

$ echo "hello" | sed 's/\(.\{2\}\)./\1a/'
1
quanta