mirror of
https://github.com/mikefarah/yq.git
synced 2025-03-13 06:15:37 +00:00
104 lines
1.4 KiB
Markdown
104 lines
1.4 KiB
Markdown
Add behaves differently according to the type of the LHS:
|
|
- arrays: concatenate
|
|
- number scalars: arithmetic addition (soon)
|
|
- string scalars: concatenate (soon)
|
|
|
|
Use `+=` as append assign for things like increment. `.a += .x` is equivalent to running `.a |= . + .x`.
|
|
|
|
## Concatenate and assign arrays
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: {val: thing, b: [cat, dog]}
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a.b += ["cow"]' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a: {val: thing, b: [cat, dog, cow]}
|
|
'': null
|
|
```
|
|
|
|
## Concatenate arrays
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: [1, 2]
|
|
b: [3, 4]
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a + .b' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[1, 2, 3, 4]
|
|
```
|
|
|
|
## Concatenate null to array
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: [1, 2]
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a + null' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[1, 2]
|
|
```
|
|
|
|
## Add object to array
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: [1, 2]
|
|
c: {cat: meow}
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a + .c' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[1, 2, {cat: meow}]
|
|
```
|
|
|
|
## Add string to array
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: [1, 2]
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a + "hello"' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
[1, 2, hello]
|
|
```
|
|
|
|
## Update array (append)
|
|
Given a sample.yml file of:
|
|
```yaml
|
|
a: [1, 2]
|
|
b: [3, 4]
|
|
'': null
|
|
```
|
|
then
|
|
```bash
|
|
yq eval '.a = .a + .b' sample.yml
|
|
```
|
|
will output
|
|
```yaml
|
|
a: [1, 2, 3, 4]
|
|
b: [3, 4]
|
|
'': null
|
|
```
|
|
|