tldr/pages/common/yq.md

1.1 KiB

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