我有一个像这样的行分隔的JSON数据:
[
{
"id": 671731542,
"type": "BeReq",
"records": [
{ "tag": "foo", "value": "bar" },
{ "tag": "foo", "value": "bar" },
{ "tag": "RespStatus", "value": "200" },
{ "tag": "RespReason", "value": "OK" },
{ "tag": "foo", "value": "bar" },
{ "tag": "RespStatus", "value": "304" },
{ "tag": "RespReason", "value": "Not Modified" }
]
}
]
[
{
"id": 671731543,
"type": "BeReq",
"records": [
{ "tag": "foo", "value": "bar" },
{ "tag": "foo", "value": "bar" },
{ "tag": "RespStatus", "value": "200" },
{ "tag": "RespReason", "value": "OK" }
]
}
]
字符串
我希望能够根据records
数组中的第n个RespStatus
进行过滤。我可以通过 anyRespStatus
来过滤项目,如:
jq '.[] | select(.records[] | .tag=="RespStatus" and .value=="304")' < requests.log
型
但有时我需要过滤,如果只有第n个RespStatus
是304
。
1条答案
按热度按时间uqxowvwt1#
您可以使用
nth
过滤器来提取符合条件的元素:字符串
(零基)
或者,Map数组,然后按索引访问:
型
(同样是从零开始;它需要分配一个新数组)