【问题标题】:How to make multiple assignment of field values in jq?如何在jq中对字段值进行多重赋值?
【发布时间】:2015-10-12 07:19:27
【问题描述】:

我有这样的 jq 命令:

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

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

【问题讨论】:

    标签: json jq


    【解决方案1】:

    逗号是jq中的运算符:

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

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

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

    【讨论】:

    • 感谢您。阅读官方文档就像没有样本的文章一样痛苦
    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多