【问题标题】:how can i got n element of json file using script shell我如何使用脚本外壳获取 json 文件的 n 个元素
【发布时间】:2020-03-31 20:06:04
【问题描述】:

我有这个 json 文件 historique.json。它由脚本 bash 创建,我在 Jenkinsfile 中调用脚本。

[
  {
    "PTF_INSTALL_DATE": " 2020-03-31 09:12:10",
    "PTF_CONTENT": [
      {
        "NAME": "api_batch_API",
        "CHECKED": "api_batch_NOT_SELECTED",
        "VERSION": "G02R00C13_c14",
        "CONFIG_FILE": ""
      }
    ]
  },
  {
    "PTF_INSTALL_DATE": " 2020-03-31 10:12:10",
    "PTF_CONTENT": [
      {
        "NAME": "api_back_API",
        "CHECKED": "api_back_NOT_SELECTED",
        "VERSION": "G02R00C13_c14",
        "CONFIG_FILE": ""
      }
    ]
  }
]

因此,当我在 jenkins 中进行构建时,一个元素已添加到文件 historique.json 的最后一个,如下所示:

[
      {
        "PTF_INSTALL_DATE": " 2020-03-31 09:12:10",
        "PTF_CONTENT": [
          {
            "NAME": "api_batch_API",
            "CHECKED": "api_batch_NOT_SELECTED",
            "VERSION": "G02R00C13_c14",
            "CONFIG_FILE": ""
          }
        ]
      },
      {
        "PTF_INSTALL_DATE": " 2020-03-31 10:12:10",
        "PTF_CONTENT": [
          {
            "NAME": "api_back_API",
            "CHECKED": "api_back_NOT_SELECTED",
            "VERSION": "G02R00C13_c14",
            "CONFIG_FILE": ""
          }
        ]
      },
      {
        "PTF_INSTALL_DATE": " 2020-03-31 11:12:10",
        "PTF_CONTENT": [
          {
            "NAME": "api_ihm_API",
            "CHECKED": "api_ihm_NOT_SELECTED",
            "VERSION": "G02R00C13_c14",
            "CONFIG_FILE": ""
          }
        ]
      }

    ]

等等。(就我而言,现在我在 json 文件中有很多元素)。 所以我的问题是我怎样才能得到最后 15 个元素而其余的被删除? 我试试这个,但对我不起作用:

for k in $(jq length historique.json); do
if [[ $k -gt 15 ]]; then
jq 'del(.[0])' historique.json > historique1.json
fi
done

有什么建议吗??(对不起我的英语)

【问题讨论】:

    标签: json bash shell jq


    【解决方案1】:

    假设我理解正确,您可以使用 jq 范围运算符:

    jq '.[-15:]' historique.json
    

    这应该返回数组中的最后 15 个元素。

    【讨论】:

      【解决方案2】:

      要仅输出数组的最后 15 个元素,请使用切片语法。

      jq '.[-15:]' historique.json
      

      【讨论】:

        猜你喜欢
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多