2015-12-11 52 views
1

有没有办法输出到标准输出和另一个进程的标准输入?也就是说,在到达另一个进程的管道之前,是否要输出中间stdout?标准输出到两个管道和控制台?

我知道tee命令可以让你写一个文件,并到stdout,但我不希望这里所涉及的任何文件。

+0

'tee' *是*写入标准输出,它会被下一个'|'的标准输入读取。或者我误解了你的Q? – shellter

+0

@shellter - 对。我希望它去的管道和旧标准输出(即控制台显示器) –

回答

1

我猜想这有点“哈克”,但您可以将tee的输出重定向到stderr。由于大多数节目从stdin需要输入重定向到stderr会是同时还通过下一工艺管道离开原来的输出。

例如,

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

威尔输出file.txt的的全部内容,并然后输出在file.txt的线(wc -l)的只是数量。

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

不是一个理想的解决方案,因为它涉及到使用stderr的东西,它不一定适合制成,但它的工作原理。

+0

谢谢你的提示!我找到了另一种解决方案(只需编写一个程序来做到这一点),但这对稍后来这里的人会有帮助。 –

相关问题