yq/pkg/yqlib/doc/operators/style.md
2022-02-06 14:39:46 +11:00

2.9 KiB

Style

The style operator can be used to get or set the style of nodes (e.g. string style, yaml style)

{% hint style="warning" %} Note that versions prior to 4.18 require the 'eval/e' command to be specified.

yq e <exp> <file> {% endhint %}

Update and set style of a particular node (simple)

Given a sample.yml file of:

a:
  b: thing
  c: something

then

yq '.a.b = "new" | .a.b style="double"' sample.yml

will output

a:
  b: "new"
  c: something

Update and set style of a particular node using path variables

Given a sample.yml file of:

a:
  b: thing
  c: something

then

yq 'with(.a.b ; . = "new" | . style="double")' sample.yml

will output

a:
  b: "new"
  c: something

Set tagged style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="tagged"' sample.yml

will output

!!map
a: !!str cat
b: !!int 5
c: !!float 3.2
e: !!bool true

Set double quote style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="double"' sample.yml

will output

a: "cat"
b: "5"
c: "3.2"
e: "true"

Set double quote style on map keys too

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '... style="double"' sample.yml

will output

"a": "cat"
"b": "5"
"c": "3.2"
"e": "true"

Set single quote style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="single"' sample.yml

will output

a: 'cat'
b: '5'
c: '3.2'
e: 'true'

Set literal quote style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="literal"' sample.yml

will output

a: |-
  cat  
b: |-
  5  
c: |-
  3.2  
e: |-
  true  

Set folded quote style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="folded"' sample.yml

will output

a: >-
  cat  
b: >-
  5  
c: >-
  3.2  
e: >-
  true  

Set flow quote style

Given a sample.yml file of:

a: cat
b: 5
c: 3.2
e: true

then

yq '.. style="flow"' sample.yml

will output

{a: cat, b: 5, c: 3.2, e: true}

Reset style - or pretty print

Set empty (default) quote style, note the usage of ... to match keys too. Note that there is a --prettyPrint/-P short flag for this.

Given a sample.yml file of:

a: cat
"b": 5
'c': 3.2
"e": true

then

yq '... style=""' sample.yml

will output

a: cat
b: 5
c: 3.2
e: true

Set style relatively with assign-update

Given a sample.yml file of:

a: single
b: double

then

yq '.[] style |= .' sample.yml

will output

a: 'single'
b: "double"

Read style

Given a sample.yml file of:

{a: "cat", b: 'thing'}

then

yq '.. | style' sample.yml

will output

flow
double
single