Posted at

YAML の要素を楽に取得・修正したい

More than 1 year has passed since last update.

jq って JSON をいじるには本当に便利で shell で済んじゃうような何かをする時には重宝してます。

ただ最近は YAML ファイルが頻繁に使われる状況なので jq のような奴の YAML 版が欲しいと思ってた。

PyPI に yq なるものがあった。

https://pypi.org/project/yq/


How to yq

$ pip install yq

$ yq
usage: yq [-h] [--yaml-output] [--width WIDTH] [--version]
jq_filter [files [files ...]]
yq: error: too few arguments

$ cat sample.yaml | yq '.'
{
"version": "2"
}

$ cat sample.yaml | yq -y '.'
version: '2'

普通に使える!以上!


補足


  • jq を入力無しに使う jq -n '{}|.version = "2"' のような -n オプションが yq では使えません (他にもあるかも)

  • Mac で brew install yq とするとなんかインストールできるけど、上述の yq とは異なるツールなので注意