Выписка из json с | по заданному слову - PullRequest
0 голосов
/ 30 апреля 2020

Может кто-нибудь помочь мне извлечь с | jq следующее:

{
  "status": "success",
  "data": {
    "resultType": "matrix",
    "result": [
      {
        "metric": {
          "pod": "dev-cds-5c97cf7f78-sw6b9"
        },
        "values": [
          [
            1588204800,
            "0.3561394483796914"
          ],
          [
            1588215600,
            "0.3607968456046861"
          ],
          [
            1588226400,
            "0.3813882532417868"
          ],
          [
            1588237200,
            "0.6264355815408573"
          ]
        ]
      },
      {
        "metric": {
          "pod": "uat-cds-66ccc9685-b5tvh"
        },
        "values": [
          [
            1588204800,
            "0.9969746974696218"
          ],
          [
            1588215600,
            "0.7400881057270005"
          ],
          [
            1588226400,
            "1.2298959318837195"
          ],
          [
            1588237200,
            "0.9482296838254507"
          ]
        ]
      }
    ]
  }
}

Мне нужно получить все значения индивидуально по заданному слову dev-cds, а не по всему имени dev-cds-5c97cf7f78-sw6b9.

Требуемый результат:

{
        "metric": {
          "pod": "dev-cds-5c97cf7f78-sw6b9"
        },
        "values": [
          [
            1588204800,
            "0.3561394483796914"
          ],
          [
            1588215600,
            "0.3607968456046861"
          ],
          [
            1588226400,
            "0.3813882532417868"
          ],
          [
            1588237200,
            "0.6264355815408573"
          ]
        ]
      }

1 Ответ

0 голосов
/ 30 апреля 2020

Сначала вы должны выполнить итерацию по массиву результатов. Проверьте, имеет ли модуль внутри объекта metri c значение, содержащее «dev-cds».

.data.result[] | if .metric.pod | contains("dev-cds") then . else empty end

https://jqplay.org/s/54OH83qHKP

...