在bash中,是否可以通过STDOUT将STDERR通过过滤器传递给管道?那就是我想要
STDOUT ────────────────┐ ├─────> terminal/file/whatever STDERR ── [ filter ] ──┘
而不是
STDOUT ────┐ ├────[ filter ]───> terminal/file/whatever STDERR ────┘
这是一个示例,以如何在bash中交换文件描述符为模型。以下是a.out的输出,不带’STDXXX:’前缀。
STDERR: stderr output STDOUT: more regular ./a.out 3>&1 1>&2 2>&3 3>&- | sed 's/e/E/g' more regular stdErr output
从以上链接引用:
首先将标准输出另存为&3(&1分为3) 接下来将stdout发送到stderr(&2被复制为1) 将stderr发送到&3(stdout)(&3被分成2个) 关闭&3(&-分为3)