#bash #jq
#bash #jq
Вопрос:
Я хочу, чтобы выходные данные были в приведенном ниже формате, например, в одной строке. Может ли кто-нибудь помочь мне получить результат.
jq -r '(.InstanceStatuses[].InstanceId,.InstanceStatuses[].Events[].InstanceEventId,.InstanceStatuses[].Events[].Code,.InstanceStatuses[].Events[].Description,.InstanceStatuses[].Events[].NotBefore)|@tsv'
Требуемый вывод:
i-004f8269b087ec123 instance-event-0ad7ad7a2011a4123 instance-stop The instance is running on degraded hardware 2020-11-16T10:00:00.000Z
{
"InstanceStatuses": [
{
"AvailabilityZone": "us-east-1b",
"Events": [
{
"InstanceEventId": "instance-event-0ad7ad7a2011a4123",
"Code": "instance-stop",
"Description": "The instance is running on degraded hardware",
"NotBefore": "2020-11-16T10:00:00.000Z"
}
],
"InstanceId": "i-004f8269b087ec123",
"InstanceState": {
"Code": 16,
"Name": "running"
},
"InstanceStatus": {
"Details": [
{
"ImpairedSince": "2020-11-01T23:36:00.000Z",
"Name": "reachability",
"Status": "failed"
}
],
"Status": "impaired"
},
"SystemStatus": {
"Details": [
{
"ImpairedSince": "2020-11-01T23:36:00.000Z",
"Name": "reachability",
"Status": "failed"
}
],
"Status": "impaired"
}
}
]
}
Ответ №1:
jq -r '
.InstanceStatuses[] |
.InstanceId as $id |
.Events[] |
[$id, .InstanceEventId, .Code, .Description, .NotBefore] |
@tsv
' file.json
Новые строки добавлены для удобства чтения: удалите их, если вам нужно.