mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
23 lines
921 B
Markdown
23 lines
921 B
Markdown
# Multiply (Merge)
|
|
|
|
Like the multiple operator in jq, depending on the operands, this multiply operator will do different things. Currently numbers, arrays and objects are supported.
|
|
|
|
## Objects and arrays - merging
|
|
Objects are merged deeply matching on matching keys. By default, array values override and are not deeply merged.
|
|
|
|
Note that when merging objects, this operator returns the merged object (not the parent). This will be clearer in the examples below.
|
|
|
|
### Merge Flags
|
|
You can control how objects are merged by using one or more of the following flags. Multiple flags can be used together, e.g. `.a *+? .b`. See examples below
|
|
|
|
- `+` to append arrays
|
|
- `?` to only merge existing fields
|
|
- `d` to deeply merge arrays
|
|
|
|
### Merging files
|
|
Note the use of `eval-all` to ensure all documents are loaded into memory.
|
|
|
|
```bash
|
|
yq eval-all 'select(fileIndex == 0) * select(fileIndex == 1)' file1.yaml file2.yaml
|
|
```
|