Я пытаюсь отсортировать json по дате (поле CreationTimeUTC) в формате iso 8601 с jq 1.5.
я нашел эта почта, но возвращается: "Невозможно проиндексировать логическое значение со строкой" CreationTimeUTC ""
jq '.Entities.BackupJobSessions.BackupJobSessions[] | sort_by(.CreationTimeUTC)'
Хорошо, без проблем, я конвертирую значение с помощью функции fromdate и получаю unixtimestamp в целочисленном формате и сортирую себя, например:
jq '.Entities.BackupJobSessions.BackupJobSessions[] | .CreationTimeUTC |= fromdate'
И попробуйте отсортировать:
jq '.Entities.BackupJobSessions.BackupJobSessions[] | .CreationTimeUTC |= fromdate | sort_by(.CreationTimeUTC)'
jq '.Entities.BackupJobSessions.BackupJobSessions[] | sort_by(.CreationTimeUTC |= fromdate)'
Но та же ошибка: «Невозможно проиндексировать логическое значение со строкой« CreationTimeUTC »».
Мой json:
{
"Entities": {
"BackupJobSessions": {
"BackupJobSessions": [
{
"IsRetry": false,
"JobUid": "urn:veeam:Job:60d09f44-654e-4831-ba59-500b4dcc7b51",
"JobName": "Backup Job Name",
"JobType": "Backup",
"CreationTimeUTC": "2017-06-22T20:15:14Z",
"EndTimeUTC": "2017-06-02T03:22:21Z",
"State": "Stopped",
"Result": "Success",
"Progress": 100,
"Name": "Backup Job Name@2017-06-02 03:15:09",
"UID": "urn:veeam:BackupJobSession:cce79255-a71b-4a20-8806-fedcc832d12f",
"Links": [
{
"Rel": "Up",
"Href": "https://:9398/api/backupServers/6a777d6b-468f-46b3-89e6-ab48076ec1ee",
"Name": "veeam-dcc-01",
"Type": "BackupServerReference"
},
{
"Rel": "Up",
"Href": "https://10.10.10.10:9398/api/jobs/60d09f44-654e-4831-ba59-500b4dcc7b51",
"Name": "Backup Job Name",
"Type": "JobReference"
},
{
"Rel": "Alternate",
"Href": "https://10.10.10.10:9398/api/backupSessions/cce79255-a71b-4a20-8806-fedcc832d12f",
"Name": "Backup Job Name@2017-06-02 03:15:09",
"Type": "BackupJobSessionReference"
},
{
"Rel": "Down",
"Href": "https://10.10.10.10:9398/api/backupSessions/cce79255-a71b-4a20-8806-fedcc832d12f/taskSessions",
"Type": "BackupTaskSessionReferenceList"
},
{
"Rel": "Stop",
"Href": "https://10.10.10.10:9398/api/backupSessions/cce79255-a71b-4a20-8806-fedcc832d12f?action=stop"
}
],
"Href": "https://10.10.10.10:9398/api/backupSessions/cce79255-a71b-4a20-8806-fedcc832d12f?format=Entity",
"Type": "BackupJobSession"
},
{
"IsRetry": false,
"JobUid": "urn:veeam:Job:60d09f44-654e-4831-ba59-500b4dcc7b51",
"JobName": "Backup Job Name",
"JobType": "Backup",
"CreationTimeUTC": "2017-06-02T03:15:09Z",
"EndTimeUTC": "2017-06-23T01:36:20Z",
"State": "Stopped",
"Result": "Success",
"Progress": 100,
"Name": "Backup Job Name@2017-06-22 20:15:14",
"UID": "urn:veeam:BackupJobSession:de2b2768-c36c-4e9e-a5c7-ff02473b8daa",
"Links": [
{
"Rel": "Up",
"Href": "https://10.10.10.10:9398/api/backupServers/6a777d6b-468f-46b3-89e6-ab48076ec1ee",
"Name": "veeam-dcc-01",
"Type": "BackupServerReference"
},
{
"Rel": "Up",
"Href": "https://10.10.10.10:9398/api/jobs/60d09f44-654e-4831-ba59-500b4dcc7b51",
"Name": "Backup Job Name",
"Type": "JobReference"
},
{
"Rel": "Alternate",
"Href": "https://10.10.10.10:9398/api/backupSessions/de2b2768-c36c-4e9e-a5c7-ff02473b8daa",
"Name": "Backup Job Name@2017-06-22 20:15:14",
"Type": "BackupJobSessionReference"
},
{
"Rel": "Down",
"Href": "https://10.10.10.10:9398/api/backupSessions/de2b2768-c36c-4e9e-a5c7-ff02473b8daa/taskSessions",
"Type": "BackupTaskSessionReferenceList"
},
{
"Rel": "Stop",
"Href": "https://10.10.10.10:9398/api/backupSessions/de2b2768-c36c-4e9e-a5c7-ff02473b8daa?action=stop"
}
],
"Href": "https://10.10.10.10:9398/api/backupSessions/de2b2768-c36c-4e9e-a5c7-ff02473b8daa?format=Entity",
"Type": "BackupJobSession"
}
]
}
}
}
С уважением,
Вы ищете:
jq '.Entities.BackupJobSessions.BackupJobSessions | sort_by(.CreationTimeUTC)'
Сортировка, похоже, работает должным образом, хотя вы все равно можете использовать:
jq '.Entities.BackupJobSessions.BackupJobSessions | sort_by(.CreationTimeUTC |= fromdate)'