Ksh

替換字元串中的模式

  • May 8, 2019

如何用以下字元串替換字元串中的每個逗號單引號逗號單引號

例子:

US1,US2,US3 ->  US1','US2,','US3

我嘗試使用以下命令

a=US1,US2
echo ${a/,/\',\'}

但它只替換第一個逗號,而不是全部。

我知道如何為此使用 sed,但我正在尋找更簡短的解決方案..

要使用參數擴展替換字元串的所有實例,請使用以下語法將每個“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

引用自:https://unix.stackexchange.com/questions/517816