---
syntax: markdown
tags: [tldr, common]
source: https://github.com/tldr-pages/tldr.git
---
# 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`
