我正在编写一个脚本,它将解析JSON文件并提取出一些docker容器名称以及它们正在运行的服务器。然后我需要用我得到的信息在bash中做一些其他的事情。我是新使用jq
,但这是我迄今为止所得到的。使用jq解析if-then-else问题
我运行以下命令:
cat env.json | jq '[.env.service.config | .[] | {dockerContainerName:.dockerConfig.dockerImageName,servers:[.allocation[].serverName]}]'
这让我的输出:
[
{
"dockerContainerName": null,
"servers": []
},
{
"dockerContainerName": "my_awesome_container",
"servers": [
"serverX01",
"serverX02"
]
},
...
...
]
你可以从结果一些服务CONFIGS的看到没有dockerConfig.dockerImageName。我需要限制返回的内容以滤除那些没有dockerConfig的。我曾尝试使用if-then-else,但似乎无法使其正常工作。
有什么想法吗?
你能提供完整的'JSON'?并提供你需要的确切的输出?目前的信息不足。 – Inian