Lendo arquivos YAML em bash com ruby

Se você tiver ruby, aqui está uma função que permite ler um arquivo YAML e extrair um hash, lista ou um valor escalar:

function ryaml {
ruby
-ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
}

Ruby já tem yaml na biblioteca padrão (mas não json!). É muito rápido também.

Hashes são retornados parecidos com JSON – trabalhando para colocar isso em YAML para que a saída de ryaml possa ser alimentada em outro ryaml, como:

ryaml <(ryaml hosts.yml mikan keys) work

As listas são um valor por linha. Os escalares parecem uma lista de um valor. Provavelmente, é melhor evitar o retorno de um hash.