如何将 live-f1 的输出写入文件

如何将 live-f1 的输出写入文件

我打开终端并运行 live-f1,它在终端(文本)中显示每秒变化的实时提要。该程序运行时只能使用“Enter”键(退出该程序)。所以你不能在控制台中输入任何其他内容。

我想将终端内容写入一个文件,就像每秒一样。

我该怎么做?

通过打开第二个控制台并使用一些命令?

无法让它与 setterm -dump 命令一起使用。

答案1

live-f1使用终端控制字符 (ncurses) 用新数据重绘屏幕,就像top或一样mtr。这就是为什么您在重定向到文件或非终端设备时会看到所有这些垃圾。

不幸的是,live-f1没有提供一个选项来获取适合保存和稍后提取数据以进行统计等的输出。如果您仍想保存输出以便稍后重播,可以使用script.

这将记录 live-f1 并创建两个文件:打字稿和计时文件。

script -c live-f1 -t 2> timingfile

这将重放输出

scriptreplay timingfile

答案2

我使用几种方法将输出捕获到文件中,这些方法可能对您有用。

script

这将创建一个子 shell 并将所有输出放入其中。这样做script,然后无论你想要什么,然后exit结束你的子shell,你的输出将在一个名为“typescript”的文件中

tee

您可以将整个管道回显到其他地方。所以你可以tee将标准输出保存到文件中:

$ mycommand | tee myoutput

如果您还需要捕获标准错误,请重定向它:

$ mycommand 2>&1 | tee myoutput

答案3

像这样运行程序怎么样:

program > /path/to/file

program这会将的输出/path/to/file立即重定向。

如果您想在终端中输出,请将其保存到文件中。查看bash 有没有办法重定向输出并仍然将其发送到标准输出?

答案4

你可以使用GNU 屏幕,连同其记录功能。另请注意,该 logfile flush secs命令允许您控制将输出刷新到磁盘的频率。从屏幕用户手册:

— 命令:日志文件刷新秒

定义日志文件将获得的名称。默认值为“screenlog.%n”。第二种形式更改将日志文件缓冲区刷新到文件系统之前屏幕等待的秒数。默认值为 10 秒。

相关内容