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.