字串轉換為看起來像 python 列表

字串轉換為看起來像 python 列表

我有一個像“string1,string2,string3”這樣的字串

我想將其轉換為 ["string1","string2","string3"]

我嘗試使用

sed 's/\(,\)/"\1"/g'

但它的回歸string1","string2","string3

答案1

由於您已經可以在逗號周圍插入引號,因此只需在開頭和結尾添加["和即可:"]

sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'

例子:

$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]

答案2

這是一個純粹的 bash 解決方案:

$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

因為這種方法不需要外部實用程序,也不需要子進程,所以應該很快。

怎麼運作的

我們使用bash的模式替換將所有逗號替換為",".因為"是 shell 活動字符,所以我們必須在命令中轉義它:

$ echo ${str//,/\",\"}
string1","string2","string3

最後一步是添加到字串的["開頭和"]結尾。因此:

$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]

相關內容