カンマ区切り文字列をjson配列に変換する

カンマ区切り文字列をjson配列に変換する

次の文字列がありますbash

"3.8,3.9,3.10"

shellを使ってこれを配列に変換する方法はありますかjson

["3.8", "3.9", "3.10"]

ベストアンサー1

文字列(二重引用符を含む)は正しい形式のJSON文字列として表示されるため、JSONプロセッサにJSONとして渡してコンマで分割jqできます。

$ echo '"3.8,3.9,3.10"' | jq 'split(",")'
[
  "3.8",
  "3.9",
  "3.10"
]

「コンパクトな出力」を得るには、jqwithを使用します。-c

$ echo '"3.8,3.9,3.10"' | jq -c 'split(",")'
["3.8","3.9","3.10"]

コマンドラインでそれを内部jq変数に割り当ててから、その変数の値を分割します。

$ jq -c -n --argjson str '"3.8,3.9,3.10"' '$str|split(",")'
["3.8","3.9","3.10"]

おすすめ記事