问题描述
文件名Abc.json
{
"name": "testfile","version": "1.0","dev": {
"LoggingLevel": "DEBUG","logging.level.HikariPool": "DEBUG","spring.testname": "@@CONSENT_RW@@","spring.testpassword": "@@CONSETNPWD@@"
}
}
文件名xyz.json
{
"name": "testset","dev": {
"@@CONSENT_RW@@": "ARM","@@CONSETNPWD@@": "ARMPWD"
}
}
因此,如果abc.json
中的“ dev”值与xyz.json
中的“ dev”键匹配,那么我需要用{{1}中的相应值替换abc.json
中的值}。
解决方法
这是一个解决方案:
< abc.json jq --argfile vars xyz.json '
$vars.dev as $dict
| .dev |= map_values( $dict[.] // .)'
如果您对使用--argfile不太满意,可以(例如)使用--slurpfile,尽管在这种情况下,$vars.dev
将被$vars[0].dev
取代