2017-04-13 05:36:59 +00:00
|
|
|
```
|
2020-01-13 05:58:11 +00:00
|
|
|
yq w <yaml_file> <path_expression> <new value>
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
Updates all the matching nodes of path expression to the supplied value.
|
|
|
|
|
|
|
|
See docs for [path expression](path_expressions.md) for more details.
|
|
|
|
|
|
|
|
## Basic
|
2017-04-13 05:36:59 +00:00
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2017-12-17 22:11:08 +00:00
|
|
|
yq w sample.yaml b.c cat
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
### Updating files in-place
|
|
|
|
```bash
|
|
|
|
yq w -i sample.yaml b.c cat
|
|
|
|
```
|
|
|
|
will update the sample.yaml file so that the value of 'c' is cat.
|
|
|
|
|
|
|
|
## From STDIN
|
2017-04-13 05:36:59 +00:00
|
|
|
```bash
|
2017-12-17 22:11:08 +00:00
|
|
|
cat sample.yaml | yq w - b.c blah
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
## Adding new fields
|
2017-04-13 05:36:59 +00:00
|
|
|
Any missing fields in the path will be created on the fly.
|
|
|
|
|
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2019-05-16 04:57:34 +00:00
|
|
|
yq w sample.yaml b.d[+] "new thing"
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
d:
|
|
|
|
- new thing
|
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
## Appending value to an array field
|
2017-09-24 00:21:16 +00:00
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
d:
|
|
|
|
- new thing
|
|
|
|
- foo thing
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
2018-02-27 21:07:34 +00:00
|
|
|
yq w sample.yaml "b.d[+]" "bar thing"
|
2017-09-24 00:21:16 +00:00
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: cat
|
|
|
|
d:
|
|
|
|
- new thing
|
|
|
|
- foo thing
|
|
|
|
- bar thing
|
|
|
|
```
|
|
|
|
|
2018-02-27 21:07:34 +00:00
|
|
|
Note that the path is in quotes to avoid the square brackets being interpreted by your shell.
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
## Multiple Documents
|
|
|
|
### Update a single document
|
2018-06-20 03:42:00 +00:00
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
something: else
|
|
|
|
---
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq w -d1 sample.yaml b.c 5
|
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
something: else
|
|
|
|
---
|
|
|
|
b:
|
|
|
|
c: 5
|
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
### Update all documents
|
2018-06-20 03:42:00 +00:00
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
something: else
|
|
|
|
---
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
```
|
|
|
|
then
|
|
|
|
```bash
|
|
|
|
yq w -d'*' sample.yaml b.c 5
|
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
something: else
|
|
|
|
b:
|
|
|
|
c: 5
|
|
|
|
---
|
|
|
|
b:
|
|
|
|
c: 5
|
|
|
|
```
|
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
UPDATE THIS
|
|
|
|
UPDATE THIS
|
|
|
|
INCLUDE DELETE EXAMPLE
|
2017-04-13 05:36:59 +00:00
|
|
|
|
2020-01-13 05:58:11 +00:00
|
|
|
## Updating multiple values with a script
|
2017-04-13 05:36:59 +00:00
|
|
|
Given a sample.yaml file of:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: 2
|
|
|
|
e:
|
|
|
|
- name: Billy Bob
|
|
|
|
```
|
|
|
|
and a script update_instructions.yaml of:
|
|
|
|
```yaml
|
|
|
|
b.c: 3
|
2019-05-16 04:57:34 +00:00
|
|
|
b.e[+].name: Howdy Partner
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
then
|
|
|
|
|
|
|
|
```bash
|
2017-12-17 22:11:08 +00:00
|
|
|
yq w -s update_instructions.yaml sample.yaml
|
2017-04-13 05:36:59 +00:00
|
|
|
```
|
|
|
|
will output:
|
|
|
|
```yaml
|
|
|
|
b:
|
|
|
|
c: 3
|
|
|
|
e:
|
|
|
|
- name: Howdy Partner
|
|
|
|
```
|
|
|
|
|
|
|
|
And, of course, you can pipe the instructions in using '-':
|
|
|
|
```bash
|
2017-12-17 22:11:08 +00:00
|
|
|
cat update_instructions.yaml | yq w -s - sample.yaml
|
2017-05-02 22:11:26 +00:00
|
|
|
```
|