使用 jq 从另一个 json 获取字段

Get field from another json using jq

我有两个 .json 文件。 第一个是 1.json

{
    "id": "107709375",
    "type": "page",
    "title": "SomeTitle",
    "space": {
        "key": "BUSINT"
    },
    "version": {
        "number": 62
    }
}

第二个logg.json:

{
    "id": "228204270",
    "type": "page",
    "status": "current",
    "title": "test-test",
    "version": {
        "when": "2016-11-23T16:54:18.313+07:00",
        "number": 17,
        "minorEdit": false
    },
    "extensions": {
        "position": "none"
    }
}

我可以使用 jq 将 logg.json 中的 version.number 粘贴到 version.number 1.json 中吗?我需要这样的东西(这是绝对错误的):

jq-win64 ".version.number 1.json" = ".version.number +1" logg.json

读取logg.json作为参数文件。然后您可以访问它的值以对另一个进行更改。

$ jq --argfile logg logg.json '.version.number = $logg.version.number + 1' 1.json

当然,您需要使用双引号才能在 Windows 命令提示符下工作。

> jq --argfile logg logg.json ".version.number = $logg.version.number + 1" 1.json

虽然文档说要使用 --slurpfile,但文件中只有一个对象,因此使用 --argfile 是完全合适的。