yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor
Go to file
2017-04-13 15:44:31 +10:00
docs Added doco 2017-04-13 15:36:59 +10:00
Godeps Using godeps 2015-10-10 12:57:11 +11:00
mkdocs Added doco 2017-04-13 15:36:59 +10:00
.gitignore Added release task 2015-09-29 09:41:00 +10:00
.travis.yml Added travis config 2017-02-13 07:28:48 +11:00
ci.sh Fixed travis script, added Travis banner to readme 2017-02-13 07:55:06 +11:00
data_navigator_test.go Refactor write to allow new entries 2017-04-12 20:25:13 +10:00
data_navigator.go Refactor write to allow new entries 2017-04-12 20:25:13 +10:00
instruction_sample.yaml Can update a yaml file from an instruction yaml file 2015-10-08 10:31:31 +11:00
json_converter_test.go Added json input functionality 2015-10-11 17:06:52 +11:00
json_converter.go Maintain order 2017-02-27 09:09:29 +11:00
LICENSE Added License (MIT) 2017-02-10 16:00:25 +11:00
mkdocs.yml Added doco 2017-04-13 15:36:59 +10:00
order.yaml Maintain order 2017-02-27 09:09:29 +11:00
order.yml Maintain order 2017-02-27 09:09:29 +11:00
path_parser_test.go Custom path parsing 2015-10-03 17:04:12 +10:00
path_parser.go Custom path parsing 2015-10-03 17:04:12 +10:00
precheckin.sh Fixed travis script, added Travis banner to readme 2017-02-13 07:55:06 +11:00
README.md README now links to doco 2017-04-13 15:44:31 +10:00
release.sh Release task now clears build directory first 2015-10-13 21:34:40 +11:00
sample2.yaml Can now splat maps 2015-10-06 10:08:31 +11:00
sample.json Added json input functionality 2015-10-11 17:06:52 +11:00
sample.yaml Can handle arrays 2015-09-28 13:17:50 +10:00
utils_test.go Maintain order 2017-02-27 09:09:29 +11:00
yaml_test.go Added "new" command for creating new yaml 2017-04-12 21:10:00 +10:00
yaml.go Added "new" command for creating new yaml 2017-04-12 21:10:00 +10:00

yaml Build Status

yaml is a lightweight and flexible command-line YAML processor

The aim of the project is to be the jq or sed of yaml files.

Install

Download latest binary or alternatively:

go get github.com/mikefarah/yaml

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 '-'

Usage

Check out the documentation for more detailed and advanced usage.

Read

yaml r <yaml file> <path>

Given a sample.yaml file of:

b:
  c: 2

then

yaml r sample.yaml b.c

will output the value of '2'.

Update

Existing yaml files can be updated via the write command

Given a sample.yaml file of:

b:
  c: 2

then

yaml w sample.yaml b.c cat

will output:

b:
  c: cat

Create

Yaml files can be created using the 'new' command. This works in the same way as the write command, but you don't pass in an existing Yaml file.

Creating a simple yaml file

yaml n b.c cat

will output:

b:
  c: cat

Converting to and from json

Yaml2json

To convert output to json, use the --tojson (or -j) flag. This can be used with any command.

json2yaml

To read in json, use the --fromjson (or -J) flag. This can be used with any command.