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

関連情報