|
|
|
|
|
by copirate
729 days ago
|
|
Of course, you can easily chain many commands in the pipeline: last_stdout, wait_threads = Open3.pipeline_r(
["gzcat", "some.txt"],
["grep", "foo"],
["sort", "-u"],
["head", "-10"],
)
I'm not sure what you mean by lazily here, but internally[0] it creates real anonymous pipes[1] between the spawned processes, so the data does not go through the ruby process at all.[0] https://github.com/ruby/open3/blob/b8909222051b4103a19eba195... [1] https://en.wikipedia.org/wiki/Anonymous_pipe |
|