我想用unix命令将列表转换为字符串。 X是一个变量并存储在新变量Y中。
X = ['8922','9292','3220'] 到 '8922,9292,3220'
我怎样才能做到这一点。请建议。
答案1
如果您有一个X
包含 的变量['8922','9292','3220']
,则可以通过执行以下操作获得Y
等于'8922,9292,3220'
(包括作为字符串一部分的引号)
Y=$(echo "$X" | sed "s/\[//; s/]//; s/','/,/g")
这会删除[
(开头)和]
(结尾)。然后,它通过定位单词边界(只要有 ,
)并更改(例如)…quick','brown…
为 来 删除内部引号…quick,brown…
。
这有很多变化。例如,如果某些列表元素可能未加引号(例如, ['8922',42,'3220']
),请尝试
Y =\'$(echo "$X" | sed "s/\[//; s/]//; s/'//g")\'
这将消除全部引用$X
,然后在开头和结尾重新应用引号。