在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数组中的最后一条路径
/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"发布于 2016-12-28 18:28:46
为了记录在案,这里有一个只使用jq的解决方案,它假定只有两行非JSON:
... | jq -n -R -r '[inputs][2:] | join("") | fromjson[-1]'
{
"path": "foo/01_Develop/01_CI/HPCC-Package-72.zip"
}发布于 2016-12-29 08:56:13
正如前面的答案中提到的,发生此错误是因为JFrog CLI的输出不是纯JSON。
您可能希望将JFROG_CLI_LOG_LEVEL环境变量设置为ERROR,以便命令不会提示其他消息。
有关更多详细信息,请阅读JFrog CLI .
发布于 2016-12-28 17:43:51
你的艺术输出不是纯粹的json..。你需要移除那些非json部件。假设我们只需要跳过前两行,我们就可以用尾跳过它们。
/usr/bin/jfrog rt s foo/01_Develop/01_CI/HPCC-Package-*.zip | tail -n +3 | jq '.[-1].path'https://stackoverflow.com/questions/41366699
复制相似问题