JQ:如何将文字值添加到输出

时间:2018-11-24 21:26:00

标签: json jq

谢谢你和我一起看看。​​

我正在使用JQ来处理JSON文件。

从此开始有效:

jq ".[]|{name:.name,type:.type}" r.json

需要在结果json中包含“ acct”和文字值“ acct1”。

我知道我可以完成两行代码

jq '.[]+{acct:"acct1"}' r.json > r2.json
jq "{acct:.acct,name:.name,type:.type}" r2.json > r.json

是否有一种方法可以与一行代码行内联-像这样行不通?

jq '.[]|{acct:"acct1",name:.name,type:.type}' r.json

感谢您解决此问题

2 个答案:

答案 0 :(得分:0)

我一直在寻找答案

jq '.[]+{acct:"acct1"}|{acct:.acct,name:.name,type:.type}" r2.json > r.json

只需要学习|的工作原理:)

答案 1 :(得分:0)

一种更经济的方法来实现我所希望的目标:

jq '.[]|{name,type, acct:"acct1"}' r.json

顺便说一句,Q(.[]|{name:.name,type:.type})中的第一个过滤器可以缩写为:

.[]|{name,type}