Я просмотрел несколько примеров парсинга строк json 'jq', все они очень полезны, но не являются окончательными для моей конкретной проблемы
Вот мой ввод JSON:
{
"outcome" : "TrBean",
"result" : {"TrAct" : {
"executiontime" : 16938570,
"invocations" : 133863,
"waittime" : 4981
}}
}
{
"outcome" : "WwwBean",
"result" : {}
}
{
"outcome": "CRFeatureBean",
"result": {
"CRChannels": {
"executiontime": 78127,
"invocations": 9983,
"waittime": 213
},
"getCRChannels": {
"executiontime": 98704,
"invocations": 10113,
"waittime": 212
},
"getCRToMigrate": {
"executiontime": 32,
"invocations": 4,
"waittime": 0
},
"getCRId": {
"executiontime": 28198633,
"invocations": 747336,
"waittime": 19856
}
}
}
Я пытаюсь кормить графит через плагин collectd exec (PUTVAL), поэтому мне нужна информация в одной строке. Я пробовал с ./jq '.result|to_entries[]|{"method:" .key, "inv": .value.invocations}|"PUTVAL \(.method)/invoke:\(.invokes)"'
... но мне нужно, чтобы в каждой строке тоже был "исход".
Также я не знаю ни количества, ни названий объектов-результатов
Итак, я хотел бы закончить с:
TrBean_TrAct
WwwBean
CRFeatureBean_CRChannels
CRFeatureBean_getCRChannels
CRFeatureBean_getCRToMigrate
CrFeatureBean_getCRId