Bash

將逗號分隔的字元串轉換為json數組

  • October 4, 2022

我有以下字元串bash

"3.8,3.9,3.10"

有沒有辦法使用shell將其轉換為json數組,即

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

由於字元串(包括它的雙引號)似乎是一個格式正確的 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"]

引用自:https://unix.stackexchange.com/questions/719751