如何将标准输出定向到两个管道中?

问题描述

我需要对程序的标准输出流做两件事:说,将其定向到两个管道中,或将其打印到终端并定向到管道中。但是-这些东西都没有将其定向到文件中。

如果我想要管道+文件,则可以使用tee命令:myprog | tee out.txt | another_command,如here所述。但是,如果两个操作都没有写入文件怎么办?

解决方法

您可以在bash中使用流程替换来实现。假设您要将输出从myprog重定向到两个单独的实体以便继续阅读,请与>(..)一起使用tee

myprog | tee >(prog1) >(prog2)

有关更多信息,请参见Greg's Wikiman bash文档。