LinuxCommandLibrary

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