如何在bash中打印流的输出?

时间:2018-01-25 12:39:46

标签: bash

我有一个输出流:

xxx 2>&1 | grep 'Word:' | sed -e ...

某个命令的输出包含Word:。我可以grep这个词,并完成其余的命令。它运作良好。最后我得到了我期待的输出。但是现在我想要完整的日志(所以流2>&1中的所有内容)都会显示在我的屏幕上的日志中,然后再点击Word:并执行我的工作。

如果我xxx 2>&1,那么我可以在屏幕上看到我想要的完整输出,但因为我必须grep,所以我的命令中不再显示它{ {1}}

我在考虑类似的事情:

xxx 2>&1 | grep 'Word:' | sed -e ...

但这不起作用。

1 个答案:

答案 0 :(得分:3)

tee:将stdin复制到stdout,以及命令行参数中指定的文件。

您可以使用tee将stdin复制到stderr:

xxx 2>&1 | tee /dev/stderr | grep ...

如果/dev/stderr不可用,请使用/proc/self/fd/2