Я ищу JQ-запрос, который позволяет объединить 2 переменные массива (не файлы), а также перезаписать первый массив новым значением из второго массива. Например:
#!/bin/bash -e
firstArrayVariable='
[
{
"Key": "A B",
"Value": "1 2"
},
{
"Key": "C D",
"Value": "3 4"
},
{
"Key": "E F",
"Value": "5 6"
},
{
"Key": "G H",
"Value": "9 10"
}
]
'
secondArrayVariable='
[
{
"Key": "A B",
"Value": "1 2"
},
{
"Key": "C D",
"Value": "3 4"
},
{
"Key": "G H",
"Value": "11 12"
},
{
"Key": "J K",
"Value": "15 16"
}
]
'
jq \
--compact-output \
--raw-output \
--arg jqSecondArrayVariable "${secondArrayVariable}" \
'. + $jqSecondArrayVariable // empty' \
<<< "${firstArrayVariable}"
Я не смог заставить его работать, и я получил следующую ошибку
jq: ошибка (при: 19): нельзя добавить массив ([{"Key": "A ...) и строку (" \ n [\ n ...) *
Я ожидаю, что результат объединенного массива будет
[
{
"Key": "A B",
"Value": "1 2"
},
{
"Key": "C D",
"Value": "3 4"
},
{
"Key": "E F",
"Value": "5 6"
},
{
"Key": "G H",
"Value": "11 12"
},
{
"Key": "J K",
"Value": "15 16"
}
]
любая помощь будет принята с благодарностью!
ОБНОВЛЕНО
Я пытался использовать --argjson
, как подсказал @peak, он объединял массив, но не мог объединить 2 массива. Результат, который я получил сейчас - это массив с дублированными объектами