【问题标题】:jq construct key and value pairjq构造键值对
【发布时间】:2020-09-07 02:21:28
【问题描述】:

我有如下 JSON 文件:

{
   "metadata":{
      "selfLink":"/api/v1/nodes",
      "resourceVersion":"6666628"
   },
   "items":[
      {
         "metadata":{
            "name":"d50d-sa-app23",
            "selfLink":"/api/v1/nodes/d50d-sa-app23",
            "uid":"86a0e0b7-e9da-4489-86bd-0b6a7aafe102",
            "resourceVersion":"6666622",
            "creationTimestamp":"2020-07-07T12:34:08Z",
            "labels":{
               "beta.kubernetes.io/arch":"amd64",
               "beta.kubernetes.io/os":"linux",
               "node-role.kubernetes.io/master":""
            }
          }
      }
    ]
}

所需的输出如下。 请注意,标签的名称和编号不固定。

beta.kubernetes.io/arch=amd64;beta.kubernetes.io/os=linux;node-role.kubernetes.io/master=

我知道如何分别获取键和值对。如下所示,但我不知道将键和值配对在一起。

.items[] | ((.metadata.labels | keys | join(",")) + "=" + (.metadata.labels | join(";")))

谁能帮忙?

谢谢

【问题讨论】:

    标签: json jq


    【解决方案1】:

    这是否有助于您解决问题:

    jq -r '.items[].metadata.labels| to_entries|map("\(.key)=\(.value)") |join(";")'
    // Output:
    // beta.kubernetes.io/arch=amd64;beta.kubernetes.io/os=linux;node-role.kubernetes.io/master=
    

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多