我有以下bash腳本:
#!/bin/bash
js="{\"fizz\":\"buzz\",\"foo\":\"baz\"}"
echo $js
json=$(echo "$js" | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]")
echo "fetching secret json:"
echo $json
當我運行它時,我會得到以下信息:
myuser@mymachine myapp % bash myscript.sh
{"fizz":"buzz","foo":"baz"}
fetching secret json:
fizz=buzz foo=baz
實際上,JSON將比2個屬性大得多,但它將是key-value對的平面映射(沒有對象嵌套)。
我實際上需要comma-delimited key-value對中的這些映射條目。因此,與其說:
fizz=buzz foo=baz
I need:
fizz=buzz,foo=baz
如何處理我的jq
篩選器(或其他地方)以在key-value對之間插入逗號?為了清楚起見,我不是在尋找有效的JSON輸出,也不是CSV格式。我需要comma-delimited KV對。提前謝謝!
加入他們吧。
Online demo