我的数据在以下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的新手,如果有任何提示,我将不胜感激。
jq -r 'map([.min, .max|tostring] | join("-")) | join(",")' input.json
1-2,5-6
如果您有一个足够新的jq版本,您可以放弃对tostring
的调用。
如果最小/最大元素总是按这个顺序排列,并且没有其他键,您可能需要考虑:
map([.[]] | join("-")) | join(",")
还可以将字符串插值与join
:结合使用
jq -r 'map("(.min)-(.max)") | join(",")' file.json
感谢匹克的想法。