这让我疯了。
我有一个看起来像这样的JSON:
{
"gateways": [
{
"DHCP": "On",
"External IPs": "46.244.46.66",
"Firewall": "On",
"NAT": "Off",
"Name": "gateway",
"Routed Networks": "photon, default-routed-network",
"Selected": "*",
"Syslog": "",
"Uplinks": "d5p6v51-ext",
"VPN": "Off"
}
]
}
我可以轻松提取大多数键的值。
E.g。
jq --raw-output .gateways[0].Name
gateway
然而,我真正需要的是"External IPs"
值,我无法弄清楚如何管理空间。
我试过
jq --raw-output .gateways[0].'External IPs'
jq --raw-output .gateways[0].`External IPs`
jq --raw-output .gateways[0]."External IPs"
但这些都不起作用。
任何提示?
答案 0 :(得分:7)
使用引用,如:
jq --raw-output '.gateways[0]."External IPs"'
答案 1 :(得分:1)
好的我明白了。
最后@JeffMercado建议的是什么。问题是apt-get install jq
安装jq版本1.3。我不得不手动更新jq(到1.5)然后它工作。
谢谢!