Linux shell get value of a field from a yml file

There are better tools than sed. You might be stuck on a minimal system, but other people looking for an answer probably won’t be.

The python version of yq acts like jq:

$ pip3 install yq
$ yq -r .test.database database.yml
sample

shyaml works too, but has an odd restriction that you can only redirect into it:

$ pip3 install shyaml
$ shyaml get-value test.database < database.yml
sample

If perl is around and you have YAML installed:

$ cpan YAML
$ perl -MYAML -le 'print YAML::LoadFile(shift)->{test}{database}' database.yml
sample

Or, if you want ruby:

$ ruby -r yaml -e 'puts YAML.load_file(ARGV[0])["test"]["database"]' database.yml
sample

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)