извлекать данные, используя jq (ключи с указанными значениями c) - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть выход репозиториев в формате json ниже.

 "test/repo1": {
    "id": "Repo1",
    "description": "Repo1 Repository",
    "state": "ACTIVE",
    "web_links": [
      {
        "name": "gitweb",
        "url": "/web/repo1/summary"
      },
      {
        "name": "gitiles",
        "url": "/plugins/repo1",
        "target": "_blank"
      }
    ]
  },
   "test/repo2": {
    "id": "Repo1",
    "description": "Repo2 Repository",
    "state": "READ_ONLY",
    "web_links": [
      {
        "name": "gitweb",
        "url": "/web/repo2/summary"
      },
      {
        "name": "gitiles",
        "url": "/plugins/repo2",
        "target": "_blank"
      }
    ]
  },
   "test/repo3": {
    "id": "Repo1",
    "description": "Repo3 Repository",
    "state": "ACTIVE",
    "web_links": [
      {
        "name": "gitweb",
        "url": "/web/repo2/summary"
      },
      {
        "name": "gitiles",
        "url": "/plugins/repo3",
        "target": "_blank"
      }
    ]
  }

Теперь я хочу разобрать и извлечь ключи, которые имеют состояние «АКТИВНЫЙ», так что мой окончательный вывод выглядит так, как показано ниже. Этот вывод не должен включать репозитории с состоянием «READ_ONLY». Как этого добиться?

test/repo1
test/repo3

1 Ответ

0 голосов
/ 12 февраля 2020

Вы можете использовать следующее:

jq --raw-output 'map_values(select(.state == "ACTIVE")) | keys[]'

Попробуйте здесь!

...