Здесь та же проблема. Использовал эту ссылку, и теперь она отлично работает. Хотя обновление до последней версии Ubuntu тоже исправляет это. http://itsfoss.com/fix-brightness-ubuntu-1310/
jq
имеет флаг для подачи фактического содержимого JSON с флагом --argjson
. Что вам нужно сделать, так это сохранить содержимое первого файла JSON в переменной в контексте jq
и обновить его во втором JSON
jq --argjson groupInfo "$(<input.json)" '.[].groups += [$groupInfo]' orig.json
Часть "$(<input.json)"
является оболочкой re -конструкции направления для вывода содержимого заданного файла и с аргументом --argjson
сохраняется в переменной groupInfo
. Теперь вы добавляете его в массив groups
в фактической части фильтра.
Иными словами, приведенное выше решение эквивалентно этому
jq --argjson groupInfo '{"id": 9,"version": 0,"lastUpdTs": 1532371267968,"name": "Training" }' \
'.[].groups += [$groupInfo]' orig.json
Новые версии jq
поддерживаютslurpfile
Это позволяет достичь желаемого результата:jq '.[].groups += $inputs' orig.json --slurpfile inputs input.json
Проверено в jq 1.6
Использовать точку в качестве заполнителя
echo '{
"id": 9,
"version": 0,
"lastUpdTs": 1532371267968,
"name": "Training"
}' | jq '[
{
"name": "JAYS",
"sourceConnection": {
"name": "ORACLE_connection",
"connectionType": "JDBC",
"commProtocol": "JDBC"
},
"checked": true,
"newlyAdded": false,
"id": null,
"groups": [.],
"displayName": "SCOTT",
"defaultLevel": "MANAGED"
}
]'
Выход:
[
{
"name": "JAYS",
"sourceConnection": {
"name": "ORACLE_connection",
"connectionType": "JDBC",
"commProtocol": "JDBC"
},
"checked": true,
"newlyAdded": false,
"id": null,
"groups": [
{
"id": 9,
"version": 0,
"lastUpdTs": 1532371267968,
"name": "Training"
}
],
"displayName": "SCOTT",
"defaultLevel": "MANAGED"
}
]
jq --version
jq-1.6