Docker检查:使用jqselect具有正斜杠的字段

# docker inspect blah | jq '.[] | .NetworkSettings.Ports' { "22/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "32776" } ] } 

我怎么得到HostPort值? 我尝试了以下,但失败了。

 # docker inspect blah | jq '.[] | .NetworkSettings.Ports.22\/tcp.HostPort' 

为什么不 :

 docker inspect --format '{{ (index (index .NetworkSettings.Ports "22/tcp") 0).HostPort }}' blah 

这将消除另一个工具的需求。

jq支持带特殊字符的键的双引号:

 jq '."22/tcp".HostPort' 

编辑:这是在文档中提到的 ,这也提到,如果你想要的话,你可以添加括号来帮助提高可读性:

 jq '.["22/tcp"].HostPort'