Мне часто отправляют мне файлы HAR (которые JSON), которые выглядят так:
{
"log": {
"entries" : [
{
"request" : {
"url" : "test.css"
}
},
{
"request" : {
"url" : "test.ok"
}
},
{
"request" : {
"url" : "test.font"
}
},
{
"request" : {
"url" : "ok"
}
}
]
}
}
Меня не волнуют запросы, содержащие URL-адреса для шрифтов, CSS, или JavaScript. Итак, я хотел бы удалить эти запросы, используя jq
. Учитывая ответ от @ iain-samuel-mclean-elder о фильтрации и поддержании структуры JSON входных данных, я ожидал, что что-то подобное сработает:
jq '[ .[] | select(.log.entries[].request.url | test("\\.(js|css|font)") | not) ]' < MyGoodHarFile.json
Это, однако, приводит к ошибке:
jq: error (at <stdin>:25): Cannot iterate over null (null)
Что я делаю не так? Как я могу создать действительный файл HAR, исключая запросы на эти определенные соответствующие URL-адреса, используя jq
?