mirror of
https://github.com/mikefarah/yq.git
synced 2024-12-19 20:19:04 +00:00
yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor
8072e66d46
The delete (short option "d") will delete the YAML subtree at the provided path in the specified file (or STDIN), if it the node exists. More complex support is currently omitted, for example: - specify nodes to delete using an external script - deleting common elements from all elements of an array |
||
---|---|---|
docs | ||
examples | ||
mkdocs | ||
scripts | ||
snap | ||
vendor | ||
.gitignore | ||
.travis.yml | ||
commands_test.go | ||
data_navigator_test.go | ||
data_navigator.go | ||
Dockerfile | ||
Dockerfile.dev | ||
json_converter_test.go | ||
json_converter.go | ||
LICENSE | ||
Makefile | ||
Makefile.variables | ||
merge_test.go | ||
merge.go | ||
mkdocs.yml | ||
path_parser_test.go | ||
path_parser.go | ||
README.md | ||
utils_test.go | ||
version_test.go | ||
version.go | ||
yq_test.go | ||
yq.go |
yq
a lightweight and portable command-line YAML processor
The aim of the project is to be the jq or sed of yaml files.
Install
On MacOS:
brew install yq
On Ubuntu and other Linux distros supporting snap
packages:
snap install yq
or, Download latest binary or alternatively:
go get github.com/mikefarah/yq
Run with Docker
Oneshot use:
docker run -v ${PWD}:/workdir mikefarah/yq yq [flags] <command> FILE...
Run commands interactively:
docker run -it -v ${PWD}:/workdir mikefarah/yq sh
Features
- Written in portable go, so you can download a lovely dependency free binary
- Deep read a yaml file with a given path
- Update a yaml file given a path
- Update a yaml file given a script file
- Update creates any missing entries in the path on the fly
- Create a yaml file given a deep path and value
- Create a yaml file given a script file
- Convert from json to yaml
- Convert from yaml to json
- Pipe data in by using '-'
- Merge multiple yaml files where each additional file sets values for missing or null value keys.
- Merge multiple yaml files with overwrite to support overriding previous values.
Usage
Check out the documentation for more detailed and advanced usage.
Usage:
yq [flags]
yq [command]
Available Commands:
help Help about any command
merge yq m [--inplace/-i] [--overwrite/-x] sample.yaml sample2.yaml
new yq n [--script/-s script_file] a.b.c newValueForC
read yq r sample.yaml a.b.c
write yq w [--inplace/-i] [--script/-s script_file] sample.yaml a.b.c newValueForC
Flags:
-h, --help help for yq
-j, --tojson output as json
-t, --trim trim yaml output (default true)
-v, --verbose verbose mode
-V, --version Print version information and quit
Use "yq [command] --help" for more information about a command.
Contribute
make [local] vendor
- add unit tests
- apply changes
make [local] build
- profit