如何在jq中进行多个字段值赋值?

时间:2015-10-12 07:19:27

标签: json jq

我有这样的jq命令:

jq --arg ts "$TS" '.Date = $ts, .Marker.Date = $ts, .InfoFromTerminator.Timestamp = $ts'

但它似乎只替换保留前两个的最后一项。如何重写查询以替换所有3个参数?

1 个答案:

答案 0 :(得分:6)

逗号是jq中的运算符:

  

即使是逗号运算符也是生成器,首先生成值   由逗号左边的表达式生成,然后为每个表达式生成   那些,由右边的表达式生成的值   逗号。

更改多个元素可以通过从一个过滤器/分配到下一个过滤/分配来完成,如下所示:

jq --arg ts "$TS" '.Date = $ts | .Marker.Date = $ts | .InfoFromTerminator.Timestamp = $ts'