我想使用jq JSON处理器从此结果中仅提取mac字段:
[
{
"id": 1,
"jsonrpc": "2.0",
"result": [
0,
{
"results": [
{
"mac": "11:22:33:44:55:66",
"noise": 0,
"mesh llid": 0,
"connected_time": 165947,
"rx": {
"rate": 6000
},
"mesh local PS": "",
"tx": {
"rate": 6000
},
"signal": -63
}
]
}
]
},
{
"id": 2,
"jsonrpc": "2.0",
"result": [
0,
{
"results": [
{
"mac": "11:22:33:44:55:66",
"noise": -105,
"mesh llid": 0,
"connected_time": 106975,
"rx": {
"rate": 650000
},
"mesh local PS": "",
"tx": {
"rate": 360000
},
"inactive": 40
},
{
"mac": "11:22:33:44:55:66",
"noise": -105,
"mesh llid": 0,
"connected_time": 20813,
"rx": {
"rate": 24000
},
"mesh local PS": "",
"tx": {
"rate": 6000
},
"inactive": 230
},
{
"mac": "11:22:33:44:55:66",
"noise": -105,
"mesh llid": 0,
"connected_time": 2106,
"rx": {
"rate": 24000
},
"mesh local PS": "",
"tx": {
"rate": 6000
},
"inactive": 240
}
]
}
]
}
]
如果我使用jq '.[].result'
,则不知道如何选择下一个结果字段。我使用了在线服务jq play-但没有运气。我尝试添加的所有内容都会导致错误。
如果我仅获得mac地址,而没有json格式(如果可能)的话,那么最好。但是我以后也可以使用egrep / awk和其他提取程序。
答案 0 :(得分:2)
以下使用..
,因此可能不完全是您想要的,但是它具有简单的优点:
jq -r '.. | objects | .mac // empty' input.json
11:22:33:44:55:66
11:22:33:44:55:66
11:22:33:44:55:66
11:22:33:44:55:66