次の(機能しない)コードがあります。
var es = require('event-stream');
var cp = require('child_process');
es.pipeline(
es.child(cp.exec("ls")),
es.split(/[\t\s]+/),
es.map(function(data,cb){
if ( /\.txt$/.test(data) ) cb(null, data);
else cb();
}),
es.child(cp.exec("cat "+data)) // this doesn't work
)
問題は、ストリームから書き込まれたチャンクである最後のストリームes.child(cp.exec("cat "+data))
にあります。これを達成するにはどうすればよいでしょうか?また、「ls」と「cat」は私が使用している実際のコマンドではありませんが、動的に生成された UNIX コマンドを実行し、出力をストリーミングする原則は同じであることに注意してください。data
map()