Sodamhan.com

TL;DR

yq

A lightweight and portable command-line YAML processor. More information: https://mikefarah.gitbook.io/yq/.

  • Output a YAML file, in pretty-print format (v4+):

yq eval path/to/file.yaml

  • Output a YAML file, in pretty-print format (v3):

yq read path/to/file.yaml --colors

  • Output the first element in a YAML file that contains only an array (v4+):

yq eval '.[0]' path/to/file.yaml

  • Output the first element in a YAML file that contains only an array (v3):

yq read path/to/file.yaml '[0]'

  • Set (or overwrite) a key to a value in a file (v4+):

yq eval '.key = "value"' --inplace path/to/file.yaml

  • Set (or overwrite) a key to a value in a file (v3):

yq write --inplace path/to/file.yaml 'key' 'value'

  • Merge two files and print to stdout (v4+):

yq eval-all 'select(filename == "path/to/file1.yaml") * select(filename == "path/to/file2.yaml")' path/to/file1.yaml path/to/file2.yaml

  • Merge two files and print to stdout (v3):

yq merge path/to/file1.yaml path/to/file2.yaml --colors

This document was created using the contents of the tldr project.