yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor
Go to file
Matthew Huxtable 8072e66d46 Add delete command
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
2018-05-07 15:52:29 +10:00
docs Updated docs to explicity put array paths in quotes 2018-02-28 08:07:34 +11:00
examples Multiline value fix - multi line strings no longer printed as a yaml block 2018-03-27 16:22:24 +11:00
mkdocs Updated docs to explicity put array paths in quotes 2018-02-28 08:07:34 +11:00
scripts Update docs 2017-12-19 11:59:27 +11:00
snap Multiline value fix - multi line strings no longer printed as a yaml block 2018-03-27 16:22:24 +11:00
vendor Rename to yq 2017-12-18 15:29:41 +11:00
.gitignore Support building snap packages 2018-02-19 08:23:30 +11:00
.travis.yml Task: Upgrade to Golang 1.9 2017-09-27 07:05:18 -04:00
commands_test.go Rename to yq 2018-04-09 15:58:12 +10:00
data_navigator_test.go Add delete command 2018-05-07 15:52:29 +10:00
data_navigator.go Add delete command 2018-05-07 15:52:29 +10:00
Dockerfile Add Dockerfile for building the official CLI container 2018-04-03 09:25:00 +10:00
Dockerfile.dev Rename to yq 2017-12-18 15:29:41 +11:00
json_converter_test.go Task: Increase test coverage, includes refactor 2017-09-22 23:01:46 -04:00
json_converter.go Task: Increase test coverage, includes refactor 2017-09-22 23:01:46 -04:00
LICENSE Added License (MIT) 2017-02-10 16:00:25 +11:00
Makefile Add snap target to Makefile 2018-02-19 08:23:30 +11:00
Makefile.variables Rename to yq 2017-12-18 15:29:41 +11:00
merge_test.go Feature: Adds merge command 2017-09-23 14:45:59 +10:00
merge.go Feature: Adds merge command 2017-09-23 14:45:59 +10:00
mkdocs.yml Update docs 2017-12-19 11:59:27 +11:00
path_parser_test.go Feature: Add append to array 2017-09-23 20:21:16 -04:00
path_parser.go Task: Simplify development 2017-09-23 08:37:34 +10:00
README.md Add Dockerfile for building the official CLI container 2018-04-03 09:25:00 +10:00
utils_test.go Task: Increase test coverage, includes refactor 2017-09-22 23:01:46 -04:00
version_test.go Fixed version test 2018-02-19 14:50:46 +11:00
version.go Rename to yq 2018-04-09 15:58:12 +10:00
yq_test.go Add delete command 2018-05-07 15:52:29 +10:00
yq.go Add delete command 2018-05-07 15:52:29 +10:00

yq Build Status

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

  1. make [local] vendor
  2. add unit tests
  3. apply changes
  4. make [local] build
  5. profit