可変位置にある可変文字列内の任意の文字を可変置換で置き換えるためのワンライナーを探しています。私はこの実用的な解決策を思いつきました:
echo "$string" | sed "s/./${replacement}/${position}"
使用例:
string=aaaaa
replacement=b
position=3
echo "$string" | sed "s/./${replacement}/${position}"
aabaa
残念ながら、現在のソリューションを含むスクリプトで shellcheck を実行すると、次のように表示されます。
SC2001: See if you can use ${variable//search/replace} instead.
sed にパイプする代わりに、提案されているようにパラメーター展開を使用したいのですが、位置変数を使用する場合の適切なフォーマットについては不明です。公式ドキュメントでは、文字列内の配置についてまったく議論していないようです。
これは可能ですか?