linux - strace 上的 grep 仅使用 stderr 到 stdout

标签 linux bash grep pipe strace

当我这样做时:

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

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

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

它仍然显示所有调用。 这是为什么?

最佳答案

这是因为 strace 将其所有输出写入 stderr,而不是 stdout。管道重定向 stdout,而不是 stderr。因此,在通过管道传输到 grep 之前,您需要将 strace 的 stderr 重定向到 stdout。

关于linux - strace 上的 grep 仅使用 stderr 到 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23151186/

相关文章:

linux - 在 Linux bash 中, sleep 一定的数字会永远持续下去

linux - bash命令从文件中删除两个 block 之间的内容

shell - 在 if 语句中使用 grep

linux - 我怎样才能从 dmidecode 获得内存速度?

Linux:从文件名中获取特定字段

c - 如何在 Linux/Ubuntu 上安装/编译 SDL2 C 代码

Python3 Websocket Callback 无法分配类成员函数

linux - "bash: sysctl: command not found"在 debian :stretch-slim

bash - 从 zsh 进入 bash 时如何加载 ~/.bash_profile?

bash: `read` 似乎不支持 IFS