обработать JSON с помощью JQ в сценарии Bash - PullRequest
0 голосов
/ 13 октября 2018

Ниже мой json, который мне нужно обработать, используя jq в bash-скрипте.Мне нужно получить значение столбца «Id».Поскольку в этом json есть 3 записи, будет возвращена запись с максимальным значением id.Таким образом, после обработки ниже JSON я должен получить 170. Я новичок и имею очень ограниченное воздействие bash.

{
  "count": 3,
  "value": [
    {
      "properties": {},
      "tags": [],          "validationResults": [],
      "plans": [
        {
          "planId": "49699e0f-b893-4633-bc05-754b8a562d07"
        }
      ],          "triggerInfo": {},
      "id": 170,
      "buildNumber": "20181011.8",          "status": "completed",          "result": "succeeded",          "queueTime": "2018-10-11T15:56:24.9611153Z",          "startTime": "2018-10-11T15:56:28.3668144Z",          "finishTime": "2018-10-11T15:57:20.5163422Z",
      "url": "https://indiatelecom.visualstudio.com/d354caa2-2e88-414a-829b-25df3aceaaaf/_apis/build/Builds/170",
      "buildNumberRevision": 8,          "uri": "vstfs:///Build/Build/170",
      "sourceBranch": "refs/heads/master",          "sourceVersion": "4303c19f8fda79e35fcb598219d5dca6bb274c2d",
      "priority": "normal",          "reason": "manual",          "lastChangedDate": "2018-10-11T15:57:20.797Z",          "parameters": "{\"system.debug\":\"false\"}",
      "orchestrationPlan": {
        "planId": "49699e0f-b893-4633-bc05-754b8a562d07"
      },          "keepForever": false,          "retainedByRelease": false,          "triggeredByBuild": null
    },
    {          "properties": {},          "tags": [],          "validationResults": [],
      "plans": [         {              "planId": "15026a2f-c725-4e52-974b-61e01a940661"
        }          ],
      "triggerInfo": {},
      "id": 160,
      "buildNumber": "20181009.20",          "status": "completed",          "result": "succeeded",          "queueTime": "2018-10-09T16:47:42.2954075Z",          "startTime": "2018-10-09T16:47:43.8034575Z",
      "finishTime": "2018-10-09T16:48:35.8340469Z",          "url": "https://indiatelecom.visualstudio.com/d354caa2-2e88-414a-829b-25df3aceaaaf/_apis/build/Builds/160",
      "buildNumberRevision": 20,          "uri": "vstfs:///Build/Build/160",
      "sourceBranch": "refs/heads/master",          "sourceVersion": "19a55c7482083785265b86015150521b40230c11",
      "priority": "normal",          "reason": "manual",
      "lastChangedDate": "2018-10-09T16:48:36.057Z",          "parameters": "{\"system.debug\":\"false\"}",
      "orchestrationPlan": {
        "planId": "15026a2f-c725-4e52-974b-61e01a940661"
      },
      "keepForever": false,          "retainedByRelease": false,
      "triggeredByBuild": null        },
    {
      "properties": {},          "tags": [],
      "validationResults": [],          "plans": [
        {
          "planId": "e45d9da8-4d95-42b7-aa23-478e1c1c49f5"
        }
      ],
      "triggerInfo": {},
      "id": 147,
      "buildNumber": "20181009.7",          "status": "completed",
      "result": "succeeded",          "queueTime": "2018-10-09T15:15:47.0248009Z",
      "startTime": "2018-10-09T15:15:50.8899892Z",          "finishTime": "2018-10-09T15:16:47.7866356Z",
      "url": "https://indiatelecom.visualstudio.com/d354caa2-2e88-414a-829b-25df3aceaaaf/_apis/build/Builds/147",
      "buildNumberRevision": 7,          "uri": "vstfs:///Build/Build/147",
      "sourceBranch": "refs/heads/master",          "sourceVersion": "70fccb138a2f2a9dfe18290c468959102f504067",
      "priority": "normal",          "reason": "manual",
      "lastChangedDate": "2018-10-09T15:16:48.16Z",
      "parameters": "{\"system.debug\":\"false\"}",          "orchestrationPlan": {
        "planId": "e45d9da8-4d95-42b7-aa23-478e1c1c49f5"
      },          "keepForever": false,          "retainedByRelease": false,
      "triggeredByBuild": null        }
  ]    }

1 Ответ

0 голосов
/ 13 октября 2018

Идентификаторы хранятся в массиве под ключом value..value[].id перечисляет идентификаторы, если вы поместите их в массив, вы можете вызвать max для него:

jq '[.value[].id] | max' < file.json
...