>_ IzzyLab

Практическое задание

jq: соедини два массива по ключу

средне

Есть два файла: /root/names.json ([{id,name}]) и /root/ages.json ([{id,age}]). Соедини их по id и запиши в /root/joined.json массив объектов {name, age}.

Что потренируешь:
  • jq
  • slurp -s
  • join по ключу
  • переменные в jq
  • select

Разбор темы

Чтобы jq обработал сразу несколько файлов как единый вход, используют флаг slurp -s: он собирает все входные JSON-значения в один общий массив, где .[0] — первый файл, .[1] — второй. Соединение по ключу (join) — это вложенный перебор: для каждого элемента одного массива сохраняем его в переменную через ... as $имя, проходим по второму массиву и оставляем совпадения фильтром select(...). Из найденной пары конструктор {...} собирает нужный объект, а внешние скобки — итоговый массив.

Что проверяется

  1. массивы соединены по id (name+age)

Как это выглядит