使用 bash/jq 将 json 对象添加到另一个 json 对象中
Add json object into another json object using bash/jq
我正在尝试创建一个新文件,将 country1.json 中定义的对象添加到 world.json 中。本质上:
world.json
{
"class": "world",
"version": "1.1.0"
}
+
country1.json
{
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
=
世界_country1.json
{
"class": "world",
"version": "1.1.0",
"country1": {
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
}
使用 country1.json 文件中对象的文件名。如果可能,我想使用 bash/jq。
感谢您的帮助,
最好,
罗曼
使用input
访问第二个文件,使用>
重定向到另一个文件
jq '.country1 = input' world.json country1.json > world_country1.json
{
"class": "world",
"version": "1.1.0",
"country1": {
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
}
如果要使用文件名作为新字段的名称,请使用 input_filename
并删除最后 5 个字符(删除 .json
):
jq '. + (input | {(input_filename[:-5]): .})' world.json country1.json > world_country1.json
我正在尝试创建一个新文件,将 country1.json 中定义的对象添加到 world.json 中。本质上:
world.json
{
"class": "world",
"version": "1.1.0"
}
+
country1.json
{
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
=
世界_country1.json
{
"class": "world",
"version": "1.1.0",
"country1": {
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
}
使用 country1.json 文件中对象的文件名。如果可能,我想使用 bash/jq。
感谢您的帮助, 最好, 罗曼
使用input
访问第二个文件,使用>
重定向到另一个文件
jq '.country1 = input' world.json country1.json > world_country1.json
{
"class": "world",
"version": "1.1.0",
"country1": {
"class": "country",
"country_1": {
"class": "city",
"name": "seattle"
}
}
}
如果要使用文件名作为新字段的名称,请使用 input_filename
并删除最后 5 个字符(删除 .json
):
jq '. + (input | {(input_filename[:-5]): .})' world.json country1.json > world_country1.json