jq合并json数组元素
我的数据位于以下json数组中:jq合并json数组元素,json,jq,Json,Jq,我的数据位于以下json数组中: [{ "min": 1, "max": 2}, { "min": 5, "max": 6}] 我需要它的格式: 1-2,5-6 我尝试了以下过滤器: .[] | [ .min, .max|tostring ] | join("-") 我最终得到了: "1-2" "5-6" 我不知道如何从这句话中得到想要的“1-2”、“5-6”。 我是jq新手,希望您能给我一些提示。也可以与join结合使用: jq -r 'map("\(.min)-\(.max)")
[{ "min": 1, "max": 2},
{ "min": 5, "max": 6}]
我需要它的格式:
1-2,5-6
我尝试了以下过滤器:
.[] | [ .min, .max|tostring ] | join("-")
我最终得到了:
"1-2"
"5-6"
我不知道如何从这句话中得到想要的“1-2”、“5-6”。
我是jq新手,希望您能给我一些提示。也可以与join
结合使用:
jq -r 'map("\(.min)-\(.max)") | join(",")' file.json
谢谢你的主意
jq -r 'map([.min, .max|tostring] | join("-")) | join(",")' input.json
1-2,5-6
如果您有一个足够新的jq版本,您可以放弃对tostring
的调用
如果最小/最大元素始终按该顺序排列,并且没有其他键,则可能需要考虑:
map([.[]] | join("-")) | join(",")
谢谢你的帮助,也谢谢你@hek2mgl:)它现在工作得很好。