密钥中有空格时的语法

mre*_*rre 6 jq

这让我疯了.

我有一个看起来像这样的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"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我可以轻松地提取大多数键的值.

例如

jq --raw-output .gateways[0].Name
gateway
Run Code Online (Sandbox Code Playgroud)

然而,我真正需要得到的是"External IPs"价值,我无法弄清楚如何管理空间.

我试过了

jq --raw-output .gateways[0].'External IPs'

jq --raw-output .gateways[0].`External IPs`

jq --raw-output .gateways[0]."External IPs"
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用.

任何提示?

Han*_* Z. 9

使用引用如下:

jq --raw-output '.gateways[0]."External IPs"'
Run Code Online (Sandbox Code Playgroud)

  • 在不允许使用此语法的旧版本的jq上,可以使用`.gateways [0] ["External IPs"]` (4认同)