如何用以下字符串替换字符串中的每个逗号 单引号 逗号 单引号
例子:
US1,US2,US3 -> US1','US2,','US3
我尝试使用以下命令
a=US1,US2
echo ${a/,/\',\'}
但它仅替换第一个逗号,而不是全部。
我知道如何使用 sed 来实现此目的,但我正在寻找更简短的解决方案。
答案1
要使用参数扩展替换字符串的所有实例,请使用以下语法将每个“needle”更改$haystack
为“pin”:
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