【发布时间】:2011-01-21 12:27:00
【问题描述】:
我有一个向stdout 和stderr 写入信息的程序,我需要用grep 处理stderr,将stdout 放在一边。
使用临时文件,可以分两步完成:
command > /dev/null 2> temp.file
grep 'something' temp.file
但是如何在没有临时文件的情况下使用一个命令和管道来实现呢?
【问题讨论】:
-
一个类似的问题,但保留标准输出:unix.stackexchange.com/questions/3514/…
-
这个问题是针对 Bash 但值得一提的是与 Bourne / Almquist shell 相关的 article。
-
我期待这样的事情:
command 2| othercommand。 Bash 是如此完美,以至于开发在 1982 年就结束了,所以恐怕我们永远不会在 bash 中看到它。 -
@Rolf 你是什么意思? Bash 相当定期地获得更新;您提出的语法不是很好,因为它与现有约定冲突,但您实际上可以使用
|&来管道 stderr 和 stdout (这不是 OP 确切要求的,但非常接近我猜你的提案可能意味着)。 -
@tripleee 我的意思是功能或语法的开发似乎已经结束或正在以非常缓慢的速度发生,因此我们似乎被几十年前确定的语法所困。
标签: bash grep stdout pipe stderr