Поскольку я впервые работаю в сценариях оболочки и парсере json, т.е. в библиотеке jq.
Я хотел объединить детали одного свойства file1 и file2 внутри другого файла3 вместе с остальными деталями свойства.
Не удалось объединить свойства файла1 и файла2, но не удалось получить подробные сведения для отображения в файле3.
В основном не удалось присвоить сохраненное значение определенному ключевому свойству в файле3
j1.json
{
"catalog": {
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "7ff5358b6d919228ae6043f7bb64abd890c6dfe9",
"git_repo_name": "catalog"
},
"swirl_components": {
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "78ed0b1d0e25a261b89160a037530cf6c594892f",
"git_repo_name": "swirl_components"
},
"demo_app": {
"git_repo_name": "demo_app",
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "1f227bb19343d19629b302c425adb8f21f4fab5a"
}
}
j2.json
{
"swirl_app": {
"version": "readBuildInfo_311",
"image_name": "/swirl_app:readBuildInfo_311",
"date_time": "Mon Mar 25 05:55:45 UTC 2019",
"git_latest_commit": "4b7bef6970f83e6e7fc04302c8b29d7cfd4a1885",
"jenkins_build_url": "http://10.229.6.14/job/HC_Dev/job/Code-Build/job/swirl_app/311/",
"artifactory_path": "ARTIFACTORY PATH"
}
}
Ожидаемый выход:
{
"catalog": {
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "7ff5358b6d919228ae6043f7bb64abd890c6dfe9",
"git_repo_name": "catalog"
},
"swirl_components": {
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "78ed0b1d0e25a261b89160a037530cf6c594892f",
"git_repo_name": "swirl_components"
},
"demo_app": {
"git_repo_name": "demo_app",
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "1f227bb19343d19629b302c425adb8f21f4fab5a"
},
"swirl_app": {
"git_repo_name": "demo_app",
"git_branch_name": "Release_Sprint1912",
"git_commit_number": "1f227bb19343d19629b302c425adb8f21f4fab5a",
"version": "readBuildInfo_311",
"image_name": "/swirl_app:readBuildInfo_311",
"date_time": "Mon Mar 25 05:55:45 UTC 2019",
"git_latest_commit": "4b7bef6970f83e6e7fc04302c8b29d7cfd4a1885",
"jenkins_build_url": "http://10.229.6.14/job/HC_Dev/job/Code-Build/job/swirl_app/311/",
"artifactory_path": "ARTIFACTORY PATH"
}
}
попытался:
j1=$(echo jq "." j1.json)
j2=$(echo jq "." j2.json)
demo=$(echo jq '.demo_app' j1.json)
jq -s 'add' $j1 $j2
jq ".swirl_app" j2.json >> swirl.json
jq '.demo_app' j1.json >> demo.json
jq -s 'add' demo.json swirl.json
total=$(echo jq -s 'add' demo.json swirl.json)
не удалось или попытался:
jq ".swirl_app={}" j3.json // makes empty object of "swirl_app": {}
jq ".swirl_app=$total" j3.json // this fails as expect result
jq ".swirl_app|=$total" j3.json // this too fails as expected result
Мои мысли: 1) Должны ли мы сделать это массив?и затем присваивать значение 2) Над переменной назначить работает, но неправильно сделано?
Окончательный вариант: Нужна помощь по этому поводу, чтобы понять, что не так с моей стороны.