Json

jq + 擷取標籤值

  • April 30, 2022

是否可以通過jq擷取所需的標籤值

例如,我們想 在輸入為ams-env時擷取標籤值 - version1531837630468

所以 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
     },
     .
     .
     .
     .
     .
     .
$ 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

引用自:https://unix.stackexchange.com/questions/460818