stdout到管道和控制台?

时间:2015-12-11 20:24:33

标签: unix pipe stdout tee

有没有办法输出到stdout和另一个进程的stdin?也就是说,在中间标准输出到达另一个过程的管道之前输出它?

我知道tee命令允许您写入文件和stdout,但我不想在此处涉及任何文件。

1 个答案:

答案 0 :(得分:1)

这是一个小小的" hacky"我猜,但您可以将tee的输出重定向到stderr。由于大多数程序都从stdin获取输入,因此重定向到stderr将保留原始输出,同时仍然可以直接进入下一个过程。

例如,

cat file.txt | tee >&2 | wc -l

将输出file.txt的全部内容,然后然后输出file.txt中的行数(wc -l)。

显然,这只有在stderr输出你想要的地方时才会起作用(如终端/控制台)。

不是一个理想的解决方案,因为它涉及使用stderr来完成它不一定适用的东西,但它有效。