从两个程序重定向标准输出

从两个程序重定向标准输出

我正在 C++ 代码 (prog2) 上运行内存检查工具 (prog1),这两个工具都给我提供了大量详细的输出。为了追查一些错误,我需要将此输出保存到文件中。

我尝试将标准输出重定向到文件:

prog1 prog2 > outfile.txt

但这给了我一个包含 prog2 输出的文件,而 prog1 的输出仍然发送到终端。

有人知道一种方法来指定我希望两个输出都转到文件吗?喜欢(prog1 prog2) > outfile.txt

答案1

很有可能将prog1其输出写入标准错误。您可以将两个输出重定向到一个文件

prog1 prog2 > outfile.txt 2>&1

或者你可以用以下方式分割输出

prog1 prog2 > outfile.txt 2> errors.txt

这并不区分个人程式' 输出,它分隔输出通道。看shell 的控制和重定向运算符是什么?了解详情。

如果您查看prog1的文档,您可能会找到一个选项来告诉它将其输出存储在命名文件中。例如,strace

strace -o strace.txt prog2 > outfile.txt

会将strace的输出存储在 中strace.txt,并将所有内容写入标准输出中outfile.txt

相关内容