Reading YAML files in bash with ruby
If you have ruby, here's a function that lets you read in a YAML file and extract a hash, list, or a scalar value:
function ryaml {
ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
}
Ruby has yaml already in the standard library (but not json!). It's pretty fast, too.
Hashes are returned looking like JSON - working on getting that into YAML so the output of ryaml can be fed into another ryaml, like:
ryaml <(ryaml hosts.yml mikan keys) work
Lists are one value per line. Scalars look like a list of one value. Probably best to avoid returning a hash.
Written by Tom, Bom
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#