Я пытаюсь проанализировать очень большой файл, который состоит из JSON объектов, таких как:
{"id": "100000002", "title": "some_title", "year": 1988}
Теперь у меня также есть очень большой список идентификаторов, которые я хочу извлечь из файла, если они есть.
Теперь я знаю, что могу сделать это:
jq '[ .[map(.id)|indices("1", "2")[]] ]' 0.txt > p0.json
, который дает желаемый результат, а именно заполняет p0. json только теми объектами, которые имеют " id "1 и" 2 ". Теперь возникает проблема: мой список идентификаторов тоже очень длинный (около 100 Кб). Итак, у меня есть программа Python, которая выводит соответствующие идентификаторы. Мое мышление состояло в том, чтобы сначала присвоить это переменной:
REL_IDS=`echo python3 rel_ids.py`
А затем сделать:
jq --arg ids "$REL_IDS" '[ .[map(.id)|indices($ids)[]] ]' 0.txt > p0.json
Я пробовал оба с скобками [$ids]
и без скобок, но нет пока удачи.
У меня такой вопрос, учитывая большое количество аргументов для фильтра, как бы я мог добавить их в свою команду jq?
Заранее большое спасибо!