如何用jq缩短JSON数组并保留原结构其他字段?
解决方法
你需要修改原JSON对象中的mylist字段,而非单独提取该字段。使用jq的赋值操作即可保留所有其他字段,同时截断mylist的元素数量:
jq '.mylist = .mylist[:N]' input.json
将命令里的N替换为你想要保留的元素个数,比如要保留前3个元素,命令就写成:
jq '.mylist = .mylist[:3]' input.json
这个命令会遍历原JSON对象,把mylist字段的值替换为它自身的前N个元素,其他字段(比如foo)会原样保留,最终输出结构完整的JSON。
如果需要将结果写入新文件,可使用重定向:
jq '.mylist = .mylist[:N]' input.json > output.json
内容的提问来源于stack exchange,提问作者Florian Castellane
相关产品推荐
相关产品推荐

