yq/pkg/yqlib/doc/Update Assign Operator.md

1.5 KiB

Updates the LHS using the expression on the RHS. Note that the RHS runs against the original LHS value, so that you can evaluate a new value based on the old (e.g. increment).

Examples

Update parent to be the child value

Given a sample.yml file of:

a:
  b:
    g: foof

then

yq eval '.a |= .b' sample.yml

will output

a:
  g: foof

Updated multiple paths

Given a sample.yml file of:

a: fieldA
b: fieldB
c: fieldC

then

yq eval '(.a, .c) |= "potatoe"' sample.yml

will output

a: potatoe
b: fieldB
c: potatoe

Update string value

Given a sample.yml file of:

a:
  b: apple

then

yq eval '.a.b |= "frog"' sample.yml

will output

a:
  b: frog

Update selected results

Given a sample.yml file of:

a:
  b: apple
  c: cactus

then

yq eval '.a[] | select(. == "apple") |= "frog"' sample.yml

will output

a:
  b: frog
  c: cactus

Update array values

Given a sample.yml file of:

- candy
- apple
- sandy

then

yq eval '.[] | select(. == "*andy") |= "bogs"' sample.yml

will output

- bogs
- apple
- bogs

Update empty object

Given a sample.yml file of:

'': null

then

yq eval '.a.b |= "bogs"' sample.yml

will output

'': null
a:
  b: bogs

Update empty object and array

Given a sample.yml file of:

'': null

then

yq eval '.a.b[0] |= "bogs"' sample.yml

will output

'': null
a:
  b:
    - bogs