假设我有三个程序:
生成器,它
生成输入到处理器的输入数据和验证器,可以检查处理器
输出对于给定输入是否正确(因此它需要两个
文件).
我目前做的是:
发电机> in.txt&&处理器< in.txt> out.txt&& cat in.txt out.txt |验证
是否可以在不使用显式文件的情况下实现相同的结果?我已经阅读过关于使用tee和进程替换重复输入的内容,但是我没有找到将两个流收集到单个流中以便最后一步的方法.
我没有测试过这个,但尝试:
{ generator | tee /dev/stderr | processor ; } 2>&1 | verifier
这会将生成器输出的副本重定向到stderr.然后在发电机的stdout上运行处理器.然后将两者结合起来管道到验证者.
但是,这不能保证订单,来自发电机和发电机的线路.处理器将到达验证者.
或者,您可以尝试如下所示的流程替换:
( generator | tee >(processor) ) | verifier