我有一个问题。一个应用程序将一大堆日志文本发送到需要捕获的 Shell 窗口中。如果我们可以跳过“应用程序可能不应该将其标准输出到日志文件以外的任何地方”,是否有我可以用来捕获程序输出的工具/命令?
除了用鼠标突出显示所有文本并复制到文本文件之外。有 250,000 行... :)
答案1
如果您可以再次运行该程序,则您有 3 个选择:
如果您不需要在程序运行时查看输出,请使用简单重定向(正如 jonsca 已经建议的那样):
$ yourVerboseProgram > anyNameForYourLogFile
如果您想在程序运行时查看其输出,您至少有两个选择:
a)按上述方法运行,在第二个终端中运行
tail -f yourLogFile
b)(“b”代表“更好”)用法
tee
:$ yourVerboseProgram | tee anyNameForYourLogFile
如果 2. 适用并且该程序是交互式的(运行时需要您的输入),使用该
script
程序:$ script aLogFile.log Script started, file is aLogFile.log $ yourVerboseProgram
(程序正在运行...然后退出。)然后退出脚本:
$ exit Script done, file is aLogFile.log
选项 3 的唯一问题是一切正在记录,包括您的按键操作,例如按“Backspace”等。