yq

A lightweight and portable command-line YAML processor.

TLDR

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

$ yq eval [path/to/file.yaml]
copy

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

$ yq read [path/to/file.yaml] --colors
copy

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

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

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

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

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

$ yq eval '.[key] = "[value]"' --inplace [path/to/file.yaml]
copy

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

$ yq write --inplace [path/to/file.yaml] '[key]' '[value]'
copy

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]
copy

Merge two files and print to stdout (v3)

$ yq merge [path/to/file1.yaml] [path/to/file2.yaml] --colors
copy

Copied to clipboard
sandbox