grep on strace只与stderr一起工作到stdout

时间:2014-04-18 09:23:02

标签: linux bash grep pipe strace

当我这样做时:

sudo strace -p PID 2>&1 | grep -v "recvmsg"

grep匹配它应该匹配的行,但是当我这样做时:

sudo strace -p PID|grep -v "recvmsg"

它仍显示所有通话。 那是为什么?

1 个答案:

答案 0 :(得分:7)

这是因为strace将其所有输出写入stderr,而不是stdout。并且管道重定向stdout,而不是stderr。所以你需要在管道到grep之前将strader的stderr重定向到stdout。