有人可以幫我根據json輸出下方的起始名稱過濾多個值。我能夠過濾相同型別屬性的值,但不能過濾同一查詢中的其他屬性。
{
"app1.btch_src": {
"eventrate": 0,
"end2end": {
"data": [
{
"at": 16054343444,
"source": "app1.btch_src",
"latency": 0.05,
"target": "app1.btch_tgt"
}
]
}
},
"app1.btch1_src": {
"eventrate": 0,
"end2end": {
"data": [
{
"at": 16054343445,
"source": "app1.btch1_src",
"latency": 200.5,
"target": "app1.btch1_tgt"
}
]
}
},
"app2.btch_src": {
"eventrate": 0,
"end2end": {
"data": [
{
"at": 16054341234,
"source": "app2.btch_src",
"latency": 50.4,
"target": "app2.btch_tgt"
}
]
}
},
"app3.btch_src": {
"eventrate": 0,
"end2end": {
"data": [
{
"at": 16054343444,
"source": "app3.btch_src",
"latency": 10,
"target": "app3.btch_tgt"
}
]
}
}
}
我已經撰寫了如下查詢,因為如果延遲超過 10 秒,我想同時檢索物件值app1.*和物件值。app2.*當我選擇以下一個屬性并且它正在作業時。
jq -r '.[] |.end2end.data[0] | select(.latency>10) |select(.source |startswith("app1")' all_info.json
我現在需要知道如何在滿足上述條件的情況下檢索這些app2值。app1
uj5u.com熱心網友回復:
您可以簡單地or設定條件,例如使用您的方法:
.[]
| .end2end.data[0]
| select(.latency>10)
| select(.source | (startswith("app1") or startswith("app2")) )
或者您可以使用正則運算式,例如
select( .source | test("^app[12]") )
也許
select( .source | test("^app[12][.]") )
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504584.html
上一篇:在T-SQLOPENJSONWith子句中使用自定義字串值
下一篇:職位串列過濾反應
