bashからリストを文字列に変換する

bashからリストを文字列に変換する

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")\'

これは削除されますみんなquote と入力$Xし、先頭と末尾に引用符を再適用します。

おすすめ記事