命令输出未重定向到文件

命令输出未重定向到文件

我想要执行以下命令,该命令与 Rational ClearCase 相关。此命令的输出应重定向到文件 testout

命令

rgy_check -vobs > testout

输出

rgy_check.exe: Error: An unregistered region \<region> was found in
VOB tag entry.
rgy_check.exe: Error: An unregistered region \<region> was found in
VOB tag entry.
...

文件testout已创建,但不知何故文件是空的。

Grep 也不起作用,它仍然给出原始输出

rgy_check -vobs | grep "06a89"

答案1

这些是错误消息。标准是将正常输出写入 STDOUT 流(可以使用 重定向)>,将错误消息写入 STDERR 流(使用 重定向)2>

如果不重定向,STDOUT 和 STDERR 都会出现在终端上,您无法分辨哪个是哪个。

因此,如果您希望错误消息最终testout重定向到

rgy_check -vobs 2> testout

但是,从你的问题来看,我认为这testout需要获得正常输出。你可以这样做:

rgy_check -vobs > testout 2> testerr

如果您需要grepSTDERR 流,可以使用以下小技巧:

rgy_check -vobs 2>&1 > testout | grep something

这将首先将 STDERR 重定向到与 STDOUT 相同的文件描述符,然后重定向 STDOUT(但不是将 STDERR 输出复制到文件testout,然后将 STDERR 输出通过管道传输到grep命令。

相关内容