Я хочу, чтобы приведенные ниже данные json были в формате ниже, я использую команду jq

#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
  

Новые строки добавлены для удобства чтения: удалите их, если вам нужно.