json - 无法在 linux 中使用 jq 解析 artifactory 的 json 输出

标签 json linux artifactory jq skip

在 Artifactory 中执行此查询后

/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip

我有这个输出:

[Info] Searching artifacts...
[Info] Found 3 artifacts.
[
  {
    "path": "foo/01_Develop/01_CI/HPCC-Package-47.zip"
  },
  {
    "path": "foo/01_Develop/01_CI/HPCC-Package-48.zip"
  },
  {
    "path": "foo/01_Develop/01_CI/HPCC-Package-72.zip"
  }
]

我想按照建议使用此命令获取 json 数组中的最后一个路径 here :

/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | jq .[-1].path

但是失败了

parse error: Invalid numeric literal at line 1, column 6

我无法更改 json,因为它是人工 jfrog 工具的输出

  • 如何修复 JQ 查询?
  • 有没有其他方法可以得到最后一条路径?

注意:我有 jq 1.5 版

更新:

使用引号我有完全相同的错误:

/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | jq '.[-1].path'
/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | jq ".[-1].path"

最佳答案

在前面的回答中提到,这个错误的发生是因为JFrog CLI的输出不是纯JSON。
您可能希望将 JFROG_CLI_LOG_LEVEL 环境变量设置为 ERROR,这样命令就不会提示其他消息。
有关更多详细信息,您可以阅读 JFrog CLI wiki.

关于json - 无法在 linux 中使用 jq 解析 artifactory 的 json 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366699/

相关文章:

docker - 使用 Azure 管道更新 JFrog Docker 注册表中的最新 Artifactory

javascript - 根据 AngularJS 中另一个选择元素的值设置选择选项

jquery - 将数据从 jquery ajax 请求传递到 wcf 服务失败反序列化?

java - 如何将 JSON 对象发布到 URL?

linux - 使用 FFMPEG 录制来自两个麦克风的音频和来自一个网络摄像头和多路复用器的视频

Azure管道: could not extract archive

go - Artifactory 中 go 项目的远程存储库不代理?

php - 特殊字符和 json_encode

mysql - MySQL 的 ADO.NET 数据服务

Linux 进程状态