mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-14 07:08:06 +00:00
1.4 KiB
1.4 KiB
Yaml files can be merged using the 'merge' command. Each additional file merged with the first file will set values for any key not existing already or where the key has no value.
yq m <yaml_file|json_file> <path>...
{!snippets/works_with_json.md!}
To Stdout
Given a data1.yaml file of:
a: simple
b: [1, 2]
and data2.yaml file of:
a: other
c:
test: 1
then
yq m data1.yaml data2.yaml
will output:
a: simple
b: [1, 2]
c:
test: 1
Updating files in-place
Given a data1.yaml file of:
a: simple
b: [1, 2]
and data2.yaml file of:
a: other
c:
test: 1
then
yq m -i data1.yaml data2.yaml
will update the data1.yaml file so that the value of 'c' is 'test: 1'.
Overwrite values
Given a data1.yaml file of:
a: simple
b: [1, 2]
and data2.yaml file of:
a: other
c:
test: 1
then
yq m -x data1.yaml data2.yaml
will output:
a: other
b: [1, 2]
c:
test: 1
Overwrite values with arrays
Given a data1.yaml file of:
a: simple
b: [1, 2]
and data3.yaml file of:
b: [2, 3, 4]
c:
test: 2
other: true
d: false
then
yq m -x data1.yaml data3.yaml
will output:
a: simple
b: [2, 3, 4]
c:
test: 2
other: true
d: false
Notice that 'b' does not result in the merging of the values within an array. The underlying library does not currently handle merging values within an array.