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

Gus*_*tav 10 terminal

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

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

我该怎么做?

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

无法让它与 setterm -dump 命令一起工作。

for*_*sck 8

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

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

这将记录 live-f1 并创建两个文件,typescript 和timingfile。

script -c live-f1 -t 2> timingfile
Run Code Online (Sandbox Code Playgroud)

这将重播输出

scriptreplay timingfile
Run Code Online (Sandbox Code Playgroud)


sta*_*fry 7

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

script
Run Code Online (Sandbox Code Playgroud)

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

tee
Run Code Online (Sandbox Code Playgroud)

您可以将所有管道回显到其他地方。因此,您可以tee将标准输出转换为文件:

$ mycommand | tee myoutput
Run Code Online (Sandbox Code Playgroud)

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

$ mycommand 2>&1 | tee myoutput
Run Code Online (Sandbox Code Playgroud)


phu*_*ehe 6

像这样运行程序如何:

program > /path/to/file
Run Code Online (Sandbox Code Playgroud)

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

如果您想在终端中输出输出,并将其保存到文件中。查看bash 中是否有一种方法可以重定向输出并仍将其转到标准输出?

  • @Gustav 还有 [ANSI 代码](http://en.wikipedia.org/wiki/ANSI_escape_code) 也被困在那里。您的应用程序要么输出某种进度计数器(它看起来像什么),要么为其输出着色,或类似。如果有某种方法可以关闭它,那么您将需要使用它来捕获干净的输出。不过,您的应用程序不输出 HTML,因此要捕获 HTML,您需要一些其他应用程序来翻译输出。 (2认同)