使用JQ或任何Linux工具删除或解析JSON文件中的数据
我有这个JSON文件:使用JQ或任何Linux工具删除或解析JSON文件中的数据,json,linux,jq,Json,Linux,Jq,我有这个JSON文件: { "vulnerable_configuration_cpe_2_2": [ "cpe:/o:apple:apple_tv:9.1", "cpe:/o:apple:watchos:2.1", "cpe:/o:apple:iphone_os:9.2", "cpe:/o:apple:mac_os_x:10.11.2" ], "vulnerable_configuration": [ { "title": "cp
{
"vulnerable_configuration_cpe_2_2": [
"cpe:/o:apple:apple_tv:9.1",
"cpe:/o:apple:watchos:2.1",
"cpe:/o:apple:iphone_os:9.2",
"cpe:/o:apple:mac_os_x:10.11.2"
],
"vulnerable_configuration": [
{
"title": "cpe:2.3:o:apple:apple_tv:9.1",
"id": "cpe:2.3:o:apple:apple_tv:9.1"
},
{
"title": "cpe:2.3:o:apple:watchos:2.1",
"id": "cpe:2.3:o:apple:watchos:2.1"
},
{
"title": "cpe:2.3:o:apple:iphone_os:9.2",
"id": "cpe:2.3:o:apple:iphone_os:9.2"
},
{
"title": "cpe:2.3:o:apple:mac_os_x:10.11.2",
"id": "cpe:2.3:o:apple:mac_os_x:10.11.2"
}
],
"summary": "The Disk Images component in Apple iOS before 9.2.1, OS X before 10.11.3, and tvOS before 9.1.1 allows local users to gain privileges or cause a denial of service (memory corruption) via unspecified vectors.",
"references": [
"https://support.apple.com/HT206168",
"https://support.apple.com/HT205732",
"https://support.apple.com/HT205731",
"https://support.apple.com/HT205729",
"http://lists.apple.com/archives/security-announce/2016/Mar/msg00001.html",
"http://lists.apple.com/archives/security-announce/2016/Jan/msg00005.html",
"http://lists.apple.com/archives/security-announce/2016/Jan/msg00003.html",
"http://lists.apple.com/archives/security-announce/2016/Jan/msg00002.html"
],
"Modified": "2016-03-29T19:01:26.810-04:00",
"Published": "2016-02-01T06:59:01.090-05:00",
"access": {
"vector": "LOCAL",
"complexity": "LOW",
"authentication": "NONE"
},
"cvss": 7.2,
"cvss-time": "2016-03-29T09:43:55.537-04:00",
"cwe": "CWE-119",
"id": "CVE-2016-1717",
"impact": {
"integrity": "COMPLETE",
"confidentiality": "COMPLETE",
"availability": "COMPLETE"
}
我想使用JQ或任何Linux工具删除以下数据
- 访问(包括向量、复杂性、身份验证)
- 参考:仅第一个或一个参考
- cvss时间
- 易受攻击的\u配置\u cpe\u 2\u 2(包括cpe:/o:apple:apple\u tv:9.1, 等)
{
"vulnerable_configuration": [
{
"title": "cpe:2.3:o:apple:apple_tv:9.1",
"id": "cpe:2.3:o:apple:apple_tv:9.1"
},
{
"title": "cpe:2.3:o:apple:watchos:2.1",
"id": "cpe:2.3:o:apple:watchos:2.1"
},
{
"title": "cpe:2.3:o:apple:iphone_os:9.2",
"id": "cpe:2.3:o:apple:iphone_os:9.2"
},
{
"title": "cpe:2.3:o:apple:mac_os_x:10.11.2",
"id": "cpe:2.3:o:apple:mac_os_x:10.11.2"
}
],
"summary": "The Disk Images component in Apple iOS before 9.2.1, OS X before 10.11.3, and tvOS before 9.1.1 allows local users to gain privileges or cause a denial of service (memory corruption) via unspecified vectors.",
"references": [
"https://support.apple.com/HT206168",
],
"Modified": "2016-03-29T19:01:26.810-04:00",
"Published": "2016-02-01T06:59:01.090-05:00",
"cvss": 7.2,
"cwe": "CWE-119",
"id": "CVE-2016-1717",
"impact": {
"integrity": "COMPLETE",
"confidentiality": "COMPLETE",
"availability": "COMPLETE"
}
我试着
但是没有工作
我必须使用的JQ命令是什么?或者我可以使用什么工具
坦克 以下jq>=1.5的过滤器满足您的要求:
del(.access)
| .references |= [.[0]]
| del(."cvss-time")
| del(.vulnerable_configuration_cpe_2_2)
如果您使用的是jq 1.4,请使用
del([cvss时间])
而不是del([cvss时间])
感谢@peak提供的快速答案。。。如果要在一行上运行所有内容,正确的命令是什么?我尝试了jq'(del(.access)'和'del('cvss time')、del('vulnerable_configuration_cpe_2_2_2')和(del(.access)|。references |=[[0]])”
但没有任何工作只要省略“换行符”。也就是说:jq'del(.access)|。references |=[[0]]|……'thanking@peak。但是<代码>cat test.json | jq'del(“cvss时间”)无工作。我有这个错误del(“.cvss time”)^1编译错误
此错误@peak这很奇怪,因为命令cat probar.json | jq'del(.access)|。引用|=[[0]]| del(.vulnerable_配置_cpe_2|)>结果。json
工作正常,但我对“cvss time”有问题,这并不奇怪。很明显,您使用的是较旧的jq。请参阅更新。
del(.access)
| .references |= [.[0]]
| del(."cvss-time")
| del(.vulnerable_configuration_cpe_2_2)