如何在Bash中使用jq获取JSON中除指定键外的所有键
使用jq过滤JSON键并输出压缩格式
你可以借助jq的数组减法特性实现需求,核心命令如下:
jq -c 'keys - ["key_to_filter"]' input.json
命令说明:
-c:强制输出为压缩的单行JSON格式,满足你需要的紧凑形式keys:提取当前JSON对象的所有键,返回一个键数组- ["key_to_filter"]:通过数组减法,从键数组中移除指定的key_to_filter元素
如果你的JSON内容通过管道传入(比如直接从命令行输入),可以这样写:
echo '{"a_key": "A","key_to_filter": "B","c_key": "C"}' | jq -c 'keys - ["key_to_filter"]'
执行后会直接输出目标结果:
["a_key","c_key"]
要是需要排除多个键,只需在数组里添加更多元素即可,例如:
jq -c 'keys - ["key_to_filter", "another_key"]' input.json
内容的提问来源于stack exchange,提问作者Yoni Melki
相关产品推荐
相关产品推荐

