2016-12-29 78 views

回答

2

以下可能的工作:

$ jq -r '.indices | to_entries[] | "\(.key): \(.value.primaries.docs.count)"' input.json 
plan: 14208 
resource: 1427143 
user: 104475 

上面假定輸入是:

{ 
    "indices": { 
    "plan":  { "primaries": { "docs": { "count": 123 }}}, 
    "resource": { "primaries": { "docs": { "count": 456 }}}, 
    "user":  { "primaries": { "docs": { "count": 789 }}} 
    } 
} 

to_entries將對象indices轉換爲數組:

[ 
    { "key": "plan", "value": { ... } }, 
    ..., 
    ... 
] 

然後可以輕鬆映射。

+0

謝謝@andlrc。這幫助我更好地理解'to_entries'。 –

+1

@DavidNeudorfer沒問題,我很高興它的工作。您應該考慮在將來發布相關輸入,因爲它可以更容易地提供有效的答案:-) – andlrc

0

這裏是直接使用按鍵的解決方案:

.indices 
| keys[] as $k 
| "\($k): \(.[$k].primaries.docs.count)"