Мой JSON файл:JQ: Показать содержимое/значение массива одноэлементной
{
"MetricAlarms": [
{
"EvaluationPeriods": 2,
"AlarmActions": [
"this is causing me trouble"
],
"Threshold": 0.0,
"Dimensions": [
{
"Name": "DBInstanceIdentifier",
"Value": "db-master02"
}
],
"MetricName": "ReplicaLag"
}
]
}
Моя текущая команда выравниваться файл в формате JSON (JQ 1.3, не может обновить прямо сейчас):
cat $JSON_FILE |
jq -r '.MetricAlarms[] |
{ MetricName,
Threshold,
EvaluationPeriods,
AlarmActions
} +
(.Dimensions[] | { DimName: .Name, DimValue: .Value })
'
производит:
{
"DimName": "DBInstanceIdentifier",
"DimValue": "db-master02",
"AlarmActions": [
"this is causing me trouble"
],
"EvaluationPeriods": 2,
"Threshold": 0,
"MetricName": "ReplicaLag"
}
То, что я действительно хочу:
{
"DimName": "DBInstanceIdentifier",
"DimValue": "db-master02",
"AlarmActions": "this is causing me trouble",
"EvaluationPeriods": 2,
"Threshold": 0,
"MetricName": "ReplicaLag"
}
Я хочу показать значение для «AlarmActions» без массива.
Это кажется простой проблемой, но ответ ускользает от меня. Я пробовал обрабатывать «AlarmActions» таким же образом, как и «Dimensions». Я пробовал каждый вариант [], [0], периодов, труб и вызовов функций, о которых я могу думать, но безрезультатно. Что мне не хватает?
Спасибо, Ханс. Это идеально. – jago