Как объединить списки в командной строке (jq)?

У меня есть два файла со списками JSON:

Файл 1

[0,1,2]
["a", "b", "c"]

Файл 2

[3,4,5]
["d", "e", "f"]

Как я могу использовать jq или аналогичный инструмент командной строки, чтобы объединить списки в каждой строке? Результатом объединения двух файлов выше должно быть:

[0,1,2,3,4,5]
["a", "b", "c", "d", "e", "f"]

Что вы уже пробовали?

bob 15.06.2024 02:41
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
1
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Считайте оба файла в массив, используйте transpose для объединения по их индексу и выполните операцию над полученным массивом, то есть add подмассивами.

jq -nc --slurpfile f1 file1.json --slurpfile f2 file2.json \
  '[$f1, $f2] | transpose[] | add'

Альтернативно, считайте их в один массив и разделите этот массив пополам, чтобы получить два подмассива:

jq -sc '[.[:length/2], .[length/2:]] | transpose[] | add' file1.json file2.json

Выход:

[0,1,2,3,4,5]
["a","b","c","d","e","f"]

Другие вопросы по теме