Rubyで埋め込みシェルスクリプティングjcat
シェルスクリプトは強力である.しかし,痒いところに手が届かない.まとめて処理しようと思ったらプロセス数上限に到達したりとか.OSにとってプロセスの生成コストは高いのである.
そこで,Rubyにシェルスクリプトのラッピングを施す.
具体的には,個別に完全なJSON文字列が入っているファイルを結合して一つのJSON文字列にする,名付けてjcat!
% cat A.json B.json {"key1": valueA} {"key2": valueB}
いや,次のようになってほしい.
puts jcat "A.json" "B.json" {"key1": valueA, "key2": valueB}
実装は以下の通り.
require 'json' def jcat(*args) return args.inject({}) {|acc, json| acc.merge(JSON.parse(File.open(json, "r:utf-8").read)) } end