字符串转换为看起来像 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"]

相关内容