使用JQ将json转换为表格会显示“无法索引字符串错误”

时间:2019-08-13 10:00:13

标签: jq

以下命令的输出

jq '.data[] | select(.vulnerable_configuration_cpe_2_2 | contains(["2.4.38"]))' search1.json

给我

{
  "Modified": "2019-06-11T17:29:00.647000",
  "Published": "2019-06-11T17:29:00.630000",
  "cvss": "5.0",
  "cwe": "CWE-399",
  "id": "CVE-2019-0220",
  "last-modified": "2019-06-25T06:15:10.627000",
  "reason": "Text search",
  "references": [
    "http://lists.opensuse.org/opensuse-security-announce/2019-04/msg00051.html"
  ],
  "summary": "A vulnerability was found in Apache HTTP Server 2.4.0 to 2.4.38. When the path component of a request URL contains multiple consecutive slashes ('/'), directives such as LocationMatch and RewriteRule must account for duplicates in regular expressions while other aspects of the servers processing will implicitly collapse them.",
  "vulnerable_configuration": [
    "cpe:2.3:a:apache:http_server:2.4.0",
    "cpe:2.3:a:apache:http_server:2.4.1",
    "cpe:2.3:a:apache:http_server:2.4.2",
    "cpe:2.3:a:apache:http_server:2.4.3",
    "cpe:2.3:a:apache:http_server:2.4.4",
    "cpe:2.3:a:apache:http_server:2.4.6",
    "cpe:2.3:a:apache:http_server:2.4.7",
    "cpe:2.3:a:apache:http_server:2.4.8",
    "cpe:2.3:a:apache:http_server:2.4.9",
    "cpe:2.3:a:apache:http_server:2.4.10",
    "cpe:2.3:a:apache:http_server:2.4.12",
    "cpe:2.3:a:apache:http_server:2.4.14",
    "cpe:2.3:a:apache:http_server:2.4.16",
    "cpe:2.3:a:apache:http_server:2.4.17",
    "cpe:2.3:a:apache:http_server:2.4.18",
    "cpe:2.3:a:apache:http_server:2.4.19",
    "cpe:2.3:a:apache:http_server:2.4.20",
    "cpe:2.3:a:apache:http_server:2.4.21",
    "cpe:2.3:a:apache:http_server:2.4.22",
    "cpe:2.3:a:apache:http_server:2.4.23",
    "cpe:2.3:a:apache:http_server:2.4.24",
    "cpe:2.3:a:apache:http_server:2.4.25",
    "cpe:2.3:a:apache:http_server:2.4.26",
    "cpe:2.3:a:apache:http_server:2.4.27",
    "cpe:2.3:a:apache:http_server:2.4.28",
    "cpe:2.3:a:apache:http_server:2.4.29",
    "cpe:2.3:a:apache:http_server:2.4.30",
    "cpe:2.3:a:apache:http_server:2.4.32",
    "cpe:2.3:a:apache:http_server:2.4.33",
    "cpe:2.3:a:apache:http_server:2.4.34",
    "cpe:2.3:a:apache:http_server:2.4.35",
    "cpe:2.3:a:apache:http_server:2.4.36",
    "cpe:2.3:a:apache:http_server:2.4.37",
    "cpe:2.3:a:apache:http_server:2.4.38",
    "cpe:2.3:o:opensuse:leap:15.0",
    "cpe:2.3:o:opensuse:leap:42.3",
    "cpe:2.3:o:debian:debian_linux:8.0",
    "cpe:2.3:o:debian:debian_linux:9.0",
    "cpe:2.3:o:fedoraproject:fedora:28",
    "cpe:2.3:o:fedoraproject:fedora:29",
    "cpe:2.3:o:fedoraproject:fedora:30",
    "cpe:2.3:o:canonical:ubuntu_linux:14.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:16.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:18.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:18.10"
  ],
  "vulnerable_configuration_cpe_2_2": [
    "cpe:/a:apache:http_server:2.4.0",
    "cpe:/a:apache:http_server:2.4.1",
    "cpe:/a:apache:http_server:2.4.2",
    "cpe:/a:apache:http_server:2.4.3",
    "cpe:/a:apache:http_server:2.4.4",
    "cpe:/a:apache:http_server:2.4.6",
    "cpe:/a:apache:http_server:2.4.7",
    "cpe:/a:apache:http_server:2.4.8",
    "cpe:/a:apache:http_server:2.4.9",
    "cpe:/a:apache:http_server:2.4.10",
    "cpe:/a:apache:http_server:2.4.12",
    "cpe:/a:apache:http_server:2.4.14",
    "cpe:/a:apache:http_server:2.4.16",
    "cpe:/a:apache:http_server:2.4.17",
    "cpe:/a:apache:http_server:2.4.18",
    "cpe:/a:apache:http_server:2.4.19",
    "cpe:/a:apache:http_server:2.4.20",
    "cpe:/a:apache:http_server:2.4.21",
    "cpe:/a:apache:http_server:2.4.22",
    "cpe:/a:apache:http_server:2.4.23",
    "cpe:/a:apache:http_server:2.4.24",
    "cpe:/a:apache:http_server:2.4.25",
    "cpe:/a:apache:http_server:2.4.26",
    "cpe:/a:apache:http_server:2.4.27",
    "cpe:/a:apache:http_server:2.4.28",
    "cpe:/a:apache:http_server:2.4.29",
    "cpe:/a:apache:http_server:2.4.30",
    "cpe:/a:apache:http_server:2.4.32",
    "cpe:/a:apache:http_server:2.4.33",
    "cpe:/a:apache:http_server:2.4.34",
    "cpe:/a:apache:http_server:2.4.35",
    "cpe:/a:apache:http_server:2.4.36",
    "cpe:/a:apache:http_server:2.4.37",
    "cpe:/a:apache:http_server:2.4.38",
    "cpe:/o:opensuse:leap:15.0",
    "cpe:/o:opensuse:leap:42.3",
    "cpe:/o:debian:debian_linux:8.0",
    "cpe:/o:debian:debian_linux:9.0",
    "cpe:/o:fedoraproject:fedora:28",
    "cpe:/o:fedoraproject:fedora:29",
    "cpe:/o:fedoraproject:fedora:30",
    "cpe:/o:canonical:ubuntu_linux:14.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:16.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:18.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:18.10"
  ]
}
{
  "Modified": "2019-04-08T17:29:00.860000",
  "Published": "2019-04-08T17:29:00.843000",
  "cvss": "6.0",
  "cwe": "CWE-362",
  "id": "CVE-2019-0217",
  "last-modified": "2019-05-13T23:29:03.847000",
  "reason": "Text search",
  "references": [
    "http://lists.opensuse.org/opensuse-security-announce/2019-04/msg00051.html"
  ],
  "summary": "In Apache HTTP Server 2.4 release 2.4.38 and prior, a race condition in mod_auth_digest when running in a threaded server could allow a user with valid credentials to authenticate using another username, bypassing configured access control restrictions.",
  "vulnerable_configuration": [
    "cpe:2.3:a:apache:http_server:2.4.38",
    "cpe:2.3:o:debian:debian_linux:8.0",
    "cpe:2.3:o:debian:debian_linux:9.0",
    "cpe:2.3:o:fedoraproject:fedora:29",
    "cpe:2.3:o:fedoraproject:fedora:30",
    "cpe:2.3:o:canonical:ubuntu_linux:12.04:-:-:-:esm",
    "cpe:2.3:o:canonical:ubuntu_linux:14.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:16.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:18.04:-:-:-:lts",
    "cpe:2.3:o:canonical:ubuntu_linux:18.10",
    "cpe:2.3:o:redhat:enterprise_linux:7.0",
    "cpe:2.3:o:opensuse:leap:15.0",
    "cpe:2.3:o:opensuse:leap:42.3"
  ],
  "vulnerable_configuration_cpe_2_2": [
    "cpe:/a:apache:http_server:2.4.38",
    "cpe:/o:debian:debian_linux:8.0",
    "cpe:/o:debian:debian_linux:9.0",
    "cpe:/o:fedoraproject:fedora:29",
    "cpe:/o:fedoraproject:fedora:30",
    "cpe:/o:canonical:ubuntu_linux:12.04::~~esm~~~",
    "cpe:/o:canonical:ubuntu_linux:14.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:16.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:18.04::~~lts~~~",
    "cpe:/o:canonical:ubuntu_linux:18.10",
    "cpe:/o:redhat:enterprise_linux:7.0",
    "cpe:/o:opensuse:leap:15.0",
    "cpe:/o:opensuse:leap:42.3"
  ]
}

我只想在命令行的一个简单表中显示所有可能的字段,但我无法实现。 我尝试了以下命令

echo $(jq '.data[] | select(.vulnerable_configuration_cpe_2_2 | contains(["2.4.38"]))' search1.json) | jq -r '.[] | "\(.summary)"'

但这给了我错误

jq: error (at <stdin>:1): Cannot index string with string "summary"

我已经对此进行了研究,并尝试修改此命令,但有时会出现编译错误。我确定我在某个地方犯了非常愚蠢的错误

预期产量

ID CWE  CVSS  Summary
xyz xyz xyz    xyzxyzxyz

1 个答案:

答案 0 :(得分:-1)

我自己弄清楚了

正确的命令是

echo $(jq '.data[] | select(.vulnerable_configuration_cpe_2_2 | contains(["2.4.38"]))' search1.json) | jq -r '. | "\(.summary)"'

jq -r之后应该有一个.,而不是.[]