我正在尝试使用JMESPath jp
(https://github.com/jmespath/jp)实用程序来应用过滤器。
我的目标是只拥有状态为“添加”的流程。并且已过滤掉特定设备ID(例如0000debf17cff54b
)。
我正在尝试这样的事情:
cat test | ./jp '[][?id=="of:00002259146f7743" && state=="ADDED"]'
但结果是[]
[
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 135,
"type": "ICMPV6_TYPE"
}
],
"id": "of:00001aced404664b",
"state": "ADDED"
},
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 136,
"type": "ICMPV6_TYPE"
}
],
"id": "of:0000debf17cff54b",
"state": "ADDED"
}
]
答案 0 :(得分:1)
无需使用第一个[],[?id=='of:0000debf17cff54b' && state=='ADDED']
正常工作。
使用第一个[]
为您提供整个数组,不包含id
或state
个键。