diff --git a/pages/common/yq.md b/pages/common/yq.md new file mode 100644 index 000000000..bd32fe637 --- /dev/null +++ b/pages/common/yq.md @@ -0,0 +1,36 @@ +# yq + +> A lightweight and portable command-line YAML processor. +> More information: . + +- 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`