文字列のすべてのカンマ一重引用符をコンマ一重引用符に置き換える方法
例:
US1,US2,US3 -> US1','US2,','US3
次のコマンドを試してみました。
a=US1,US2
echo ${a/,/\',\'}
ただし、これはすべてではなく、最初のカンマのみを置き換えます。
私はこれを達成するためにsedを使用する方法を知っていますが、より短い解決策を探しています。
答え1
文字列のすべてのインスタンスをパラメータ拡張に置き換えるには、次の$haystack
構文を使用して各「針」を「ピン」に変更します。
echo "${haystack//needle/pin}"
たとえば、
$ foo="yabbadabbadoo"
$ echo "${foo//a/_}"
y_bb_d_bb_doo
ただし、特殊文字をエスケープする必要があります。
$ foo="milk,eggs,pancake mix,butter"
$ echo "${foo//,/','}"
milk,eggs,pancake mix,butter
$ echo "${foo//,/\',\'}"
milk','eggs','pancake mix','butter