将命令行的输出保存在文本文件中?

将命令行的输出保存在文本文件中?

我使用以下命令行来分析数据:

unpackdcm -scr ${in} -targ ${out} 

该命令在屏幕上打印有关作业进度的状态和描述。为了保存状态,我执行了以下操作:

unpackdcm -scr ${in} -targ ${out} >stat.txt

但这没有用。

答案1

-符号>代表一个I/O 重定向。将>stat.txt应用程序的标准输出 (stdout) 重定向到文件stat.txt.它被重定向,因此您不会在 shell 中看到任何输出。

如果您想要当前 shell 中的输出并且文件将输出通过管道传输到tee

your_command | tee stat.txt

或者..

your_command | tee -a stat.txt

..追加到文件中。

您的应用程序也可能会产生一些错误。它们大多出现在标准错误中(参见标准流)。要重定向该流,请使用以下语法:

your_command 2>error.log

答案2

输出可能被发送到仅捕获 的操作stderr符未捕获的输出。>stdout

相反,如果您使用的是 bash shell,请尝试使用运算符路由stderrstdout文件&>。例如:

unpackdcm -scr ${in} -targ ${out} &>stat.txt

仅重定向stderr,请使用以下命令:

unpackdcm -scr ${in} -targ ${out} 2>stat.txt

相关内容