小编man*_*ixx的帖子

如果与给定键对应的值以指定的字符串开头,则使用jq更新JSON文档中的对象

我有给定的JSON和想改变id所有元素的值,这与开始testname元素:

{
    "other-value": "some-id",
    "values": [
        {
            "name": "test-2017-12-01",
            "id": "1"

        },
        {
            "name": "othert",
            "id": "2"
        }

    ]
}
Run Code Online (Sandbox Code Playgroud)

以下jq命令可用于jqplay

jq (.values[] | select(.name == "test-afs").id) |= "NEWID"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用startswith它停止工作时,我缺少什么呢?jqplay

(.values[] | select(.name | startswith("test")).id) |= "NEWID" 
Run Code Online (Sandbox Code Playgroud)

jq:错误(处:14):尝试访问{“ name”:“ test-afs”,“ id”:“ id”}的元素“ id”附近的无效路径表达式退出状态5

bash shell json jq

5
推荐指数
1
解决办法
1540
查看次数

标签 统计

bash ×1

jq ×1

json ×1

shell ×1