在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"
}
]
我想按照建议的here:
使用此命令获取json数组中的最后一个路径/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | jq .[-1].path
但是
失败了解析错误:第1行第6列的数字文字无效
我不能改变json,因为它是神器jfrog工具的输出
注意:我有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"
答案 0 :(得分:4)
如前面的答案所述,发生此错误是因为JFrog CLI的输出不是纯JSON
您可能希望将JFROG_CLI_LOG_LEVEL环境变量设置为ERROR,以便命令不会提示其他消息。
有关详细信息,请参阅JFrog CLI wiki.
答案 1 :(得分:3)
你的Artifactory输出不是纯粹的json ......你需要删除那些非json部分。假设我们只需要跳过前两行,我们就可以使用tail跳过em。
/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | tail -n +3 | jq '.[-1].path'
答案 2 :(得分:1)
为了记录,这里是一个仅限jq的解决方案,假设有两行非JSON序言:
... | jq -n -R -r '[inputs][2:] | join("") | fromjson[-1]'
{
"path": "foo/01_Develop/01_CI/HPCC-Package-72.zip"
}