2017-07-14 83 views
0

下面是我做基本jq時的輸出片段,我想得到的是分區的數據。初學jq解析 - 無法用字符串索引數組

jq . 



[ 
{ 
"partitions": [ 
    "[email protected] 
], 
"os_pid": "20458", 
"fd_used": 20, 
"fd_total": 1024, 
"sockets_used": 2, 
"sockets_total": 829, 
"mem_used": 41128152, 

當我做JQ」 .partitions'我得到 不能索引數組,字符串‘分區’ - 任何想法,爲什麼出現這種情況?

回答

2

您有一個數組,其中每個元素都有一個partitions字段。您要求獲得「分區」,但是您不會說數組中的元素或元素。

下面是一個完整的,獨立的文件:

[ 
    { 
    "partitions": [ "[email protected]" ] 
    }, 
    { 
    "partitions": [ "more" ] 
    } 
] 

你的表達產生你所說的錯誤:

$ jq '.partitions' file 
jq: error (at file:8): Cannot index array with string "partitions" 

你可以得到的第一個元素 「分區」:

$ jq '.[0].partitions' file 
[ 
    "[email protected]" 
] 

或對於每個元素:

或者加入所有從每個元素分區成一個列表:

$ jq 'map(.partitions) | add' file 
[ 
    "[email protected]", 
    "more" 
]