如果我有一个进程
a.out
,我可以使用./a.out | grep foo
来查看经过foo过滤的a.out的标准输出。我还可以说./a.out 2>&1 | grep foo
来查看被foo过滤的错误和输出。使用tee
命令,我可以将标准输出发送到终端和可能的文件输出。但是有没有一种方法可以分别过滤它们?就像这样:./a.out | tee grep foo file.txt
但是我希望将写入file.txt
的内容过滤成匹配foo,而不是屏幕上显示的内容...或者更好的是,将屏幕上显示的内容通过baz进行过滤,如果在bash中没有现成的方法,我会自己编写“tee”,但我想应该有某种方法...
1
会导致每一行都被打印。在实际使用中,您可以直接写/bar/
而不是将内容传送到grep bar
。 - William Pursell