jq + 캡처 태그 값

jq + 캡처 태그 값

필요한 태그 값을 캡처하는 것이 가능합니까?

예를 들어 태그 값을 캡처하려고 합니다.버전 1531837630468 그리고 입력은ams 환경

따라서 jq는 ams-env를 통해 태그 값을 캡처합니다.

{
  "href" : "http://master:8080/api/v1/clusters/HDP?fields=Clusters/desired_configs",
  "Clusters" : {
    "cluster_name" : "HDP",
    "version" : "HDP-2.6",
    "desired_configs" : {
      "airflow" : {
        "tag" : "version1508837789535411",
        "version" : 2
      },
      "ams-env" : {
        "tag" : "version1531837630468",
        "version" : 7
      },
      "ams-grafana-env" : {
        "tag" : "version1531831836137",
        "version" : 5
      },
      .
      .
      .
      .
      .
      .

답변1

$ jq -r '.Clusters.desired_configs."ams-env".tag' file.json
version1531837630468

ams-env비트에는 빼기 기호가 포함되어 있으므로 따옴표로 묶어야 합니다. 그 외에는 간단합니다.

ams-env명령줄에서 변수로 전달 하려면 다음 을 수행하세요.

$ jq -r --arg var "ams-env" '.Clusters.desired_configs[$var].tag' file.json
version1531837630468

관련 정보