
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
し、先頭と末尾に引用符を再適用します。