Intro
Ich habe recherchiert und versucht, dies für 2 Tage. Es ist mir nicht gelungen, eine ähnliche Frage zu finden oder selbst eine Antwort zu finden.jq: ein einzelnes Feld bearbeiten, während das CSV-Umwandlung
Ich habe folgende JSON Nutzlast (von VRA APIs)
{ "content": [
{
"@type": "CatalogResource",
"id": "ccc",
"iconId": "xxx",
"resourceTypeRef": {
"id": "Infrastructure.Virtual",
"label": "Virtual Machine"
},
"name": "name01",
"description": "example01",
"status": "ACTIVE",
"catalogItem": {
"id": "xxxxx",
"label": "xxxxx"
},
"requestId": "xxxxx",
"providerBinding": {
"bindingId": "xxxx",
"providerRef": {
"id": "xxxxx",
"label": "xxxxx"
}
},
"owners": [
{
"tenantName": "xxxxx",
"ref": "xxxxxxxx",
"type": "USER",
"value": "xxxxxxxxx"
}
],
"organization": {
"tenantRef": "xxxx",
"tenantLabel": "xxxxxxx",
"subtenantRef": "xxxxxx",
"subtenantLabel": "xxxxxxxxx"
},
"dateCreated": "2015-10-05T08:58:35.133Z",
"lastUpdated": "2015-12-03T13:23:54.187Z",
"hasLease": true,
"lease": {
"start": "2015-10-05T08:21:31.000Z"
},
"leaseForDisplay": null,
"hasCosts": true,
"costs": {
"leaseRate": {
"type": "moneyTimeRate",
"cost": {
"type": "money",
"currencyCode": "GBP",
"amount": 99999
},
"basis": {
"type": "timeSpan",
"unit": "DAYS",
"amount": 1
}
}
},
"costToDate": {
"type": "money",
"currencyCode": "GBP",
"amount": 19181
},
"totalCost": null,
"childResources": [],
"operations": null,
"forms": {
"catalogResourceInfoHidden": true,
"details": {
"type": "extension",
"extensionId": "xxxxxx",
"extensionPointId": null
}
},
"resourceData": {
"entries": []
}
},
{
"@type": "CatalogResource",
"id": "ccc",
"iconId": "xxx",
"resourceTypeRef": {
"id": "Infrastructure.Virtual",
"label": "Virtual Machine"
},
"name": "name01",
"description": "this, is, my, problem",
"status": "ACTIVE",
"catalogItem": {
"id": "xxxxx",
"label": "xxxxx"
},
"requestId": "xxxxx",
"providerBinding": {
"bindingId": "xxxx",
"providerRef": {
"id": "xxxxx",
"label": "xxxxx"
}
},
"owners": [
{
"tenantName": "xxxxx",
"ref": "xxxxxxxx",
"type": "USER",
"value": "xxxxxxxxx"
}
],
"organization": {
"tenantRef": "xxxx",
"tenantLabel": "xxxxxxx",
"subtenantRef": "xxxxxx",
"subtenantLabel": "xxxxxxxxx"
},
"dateCreated": "2015-10-05T08:58:35.133Z",
"lastUpdated": "2015-12-03T13:23:54.187Z",
"hasLease": true,
"lease": {
"start": "2015-10-05T08:21:31.000Z"
},
"leaseForDisplay": null,
"hasCosts": true,
"costs": {
"leaseRate": {
"type": "moneyTimeRate",
"cost": {
"type": "money",
"currencyCode": "GBP",
"amount": 99999
},
"basis": {
"type": "timeSpan",
"unit": "DAYS",
"amount": 1
}
}
},
"costToDate": {
"type": "money",
"currencyCode": "GBP",
"amount": 19181
},
"totalCost": null,
"childResources": [],
"operations": null,
"forms": {
"catalogResourceInfoHidden": true,
"details": {
"type": "extension",
"extensionId": "xxxxxx",
"extensionPointId": null
}
},
"resourceData": {
"entries": []
}
}
]
}
ich es in CSV konvertieren wie folgt:
jq --raw-output -r '.content[0] | [.name,.id,.resourceTypeRef.label,.description,.status,.catalogItem.label,.owners[0].value,.dateCreated,.costs.leaseRate.cost.amount,.costToDate.amount] | @csv'
Frage
Ich brauche das .beschreibung Feld bearbeiten und entferne Kommas, wenn sie vorhanden sind.
Ich suche nach einem jq Weg, es zu tun; Ich könnte es auf Shell-Ebene mit sed oder awk tun, aber ich würde gerne wissen, ob es möglich ist mit jq innerhalb des gleichen Befehls, den ich verwenden, um die CSV zu generieren.
Danke !!
Der jq Befehl funktioniert nicht – hek2mgl
Sie haben Recht und ich entschuldige mich. Der JSON-Code war ein Auszug. Es ist immer noch ein Auszug des gesamten JSON, der vom VRA-Aufruf zurückgegeben wurde, aber ich habe ihn jetzt geändert und er sollte mit dem * jq * -Beispiel arbeiten. Danke – Benedetto