如何使用jq将筛选后的对象返回为可索引的列表?
解决jq筛选结果返回数组的问题
方法一:用数组构造器包裹筛选逻辑
把筛选逻辑放在数组构造器[]内部,就能将筛选出的独立对象重新组合成数组:
jq '[.[] | select(.blah=="true")]'
执行后输出:
[ { "a": "1", "blah": "true" }, { "c": "3", "blah": "true" } ]
方法二:使用map函数(更简洁)
jq的map函数专门用于对数组每个元素执行指定操作,结果会自动以数组形式返回:
jq 'map(select(.blah=="true"))'
该命令和方法一效果完全一致,写法更简洁直观,推荐使用。
内容的提问来源于stack exchange,提问作者HexagonalSmile
相关产品推荐
相关产品推荐

