yq
v4.x
v4.x
  • yq
  • How It Works
  • Recipes
  • Upgrading from V3
  • Commands
    • Evaluate
    • Evaluate All
    • Shell Completion
  • Operators
    • Add
    • Alternative (Default value)
    • Anchor and Alias Operators
    • Array to Map
    • Assign (Update)
    • Boolean Operators
    • Collect into Array
    • Column
    • Comment Operators
    • Compare Operators
    • Contains
    • Create, Collect into Object
    • Date Time
    • Delete
    • Divide
    • Document Index
    • Encode / Decode
    • Entries
    • Env Variable Operators
    • Equals
    • Eval
    • File Operators
    • Filter Operator
    • Flatten
    • Group By
    • Has
    • Keys
    • Kind
    • Length
    • Line
    • Load
    • Min
    • Map
    • Max
    • Modulo
    • Multiply (Merge)
    • Omit
    • Parent
    • Path
    • Pick
    • Pipe
    • Pivot
    • Recursive Descent (Glob)
    • Reduce
    • Reverse
    • Select
    • Shuffle
    • Slice Array
    • Sort
    • Sort Keys
    • Split into Documents
    • String Operators
    • Style
    • Subtract
    • Tag
    • To Number
    • Traverse (Read)
    • Union
    • Unique
    • Variable Operators
    • With
  • Usage
    • Output format
    • Working with CSV, TSV
    • Working with JSON
    • Working with Properties
    • Working with XML
    • Working with LUA
    • Working with TOML
    • Working with Shell Output
    • Front Matter
    • Split into multiple files
    • GitHub Action
    • Tips, Tricks, Troubleshooting
  • Github Page
Powered by GitBook
On this page
  • Collect empty object
  • Wrap (prefix) existing object
  • Using splat to create multiple objects
  • Working with multiple documents
  • Creating yaml from scratch
  • Creating yaml from scratch with multiple objects

Was this helpful?

  1. Operators

Create, Collect into Object

This is used to construct objects (or maps). This can be used against existing yaml, or to create fresh yaml documents.

Collect empty object

Running

yq --null-input '{}'

will output

{}

Wrap (prefix) existing object

Given a sample.yml file of:

name: Mike

then

yq '{"wrap": .}' sample.yml

will output

wrap:
  name: Mike

Using splat to create multiple objects

Given a sample.yml file of:

name: Mike
pets:
  - cat
  - dog

then

yq '{.name: .pets.[]}' sample.yml

will output

Mike: cat
Mike: dog

Working with multiple documents

Given a sample.yml file of:

name: Mike
pets:
  - cat
  - dog
---
name: Rosey
pets:
  - monkey
  - sheep

then

yq '{.name: .pets.[]}' sample.yml

will output

Mike: cat
Mike: dog
---
Rosey: monkey
Rosey: sheep

Creating yaml from scratch

Running

yq --null-input '{"wrap": "frog"}'

will output

wrap: frog

Creating yaml from scratch with multiple objects

Running

yq --null-input '(.a.b = "foo") | (.d.e = "bar")'

will output

a:
  b: foo
d:
  e: bar
PreviousContainsNextDate Time

Last updated 1 year ago

Was this helpful?