Фильтровать элементы JSON по содержимому их подэлементов в оболочке Windows, используя JQ? - PullRequest
0 голосов
/ 30 мая 2019

Это можно спросить в другом месте, но у меня возникла проблема с поиском аналогичного случая:

Попытка отфильтровать консенсус реле сети Tor (https://onionoo.torproject.org/details)) на основе того, работает ли реле и имеет ли он флаг «Быстрый» или нет, чтобы сделать другой JSON составленным из выбранных реле. Возможно, даже более краткая версия, в которой перечислены только некоторые элементы каждого реле (псевдоним, отпечаток и т. Д.).

Я пытаюсь использовать это в пакетном скрипте, что затрудняет работу с JQ, так как для его работы требуется оболочка для работы с оболочкой Windows.

Просматривая Учебник и руководство, я в тупике. Кто-нибудь знает решение?

1 Ответ

1 голос
/ 30 мая 2019

Этот фильтр выберет реле с флагами Running и Fast и выдаст массив объектов, содержащих только поля nickname и fingerprint, настроив его в соответствии с вашими требованиями.

.relays | map(select(.flags | index("Running") and index("Fast")) | { nickname, fingerprint })
...