如何将终端内容写入文件


13

这是我的情况:打开终端并运行程序,该程序在终端(文本)中显示实时供稿,每秒变化一次。该程序正在运行(退出该程序)时,只能使用“ Enter”键。因此,您无法在控制台中输入其他任何内容。

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

我该怎么做?通过打开第二个控制台并使用一些命令?无法通过setterm -dump命令使用它。


1
嗯,这是哪个应用程序?如果检查不好,则应确保应用程序是否可以选择将输出保存在某个位置。
Severo Raz

做了检查。没有。否则我不会有这个问题。程序为live-f1,launchpad.net
Gustav,

Answers:


16

您可以将输出通过管道传递到tee程序(description):

my_program ... | tee my_program.log

这将在终端上显示输出,也将其写入文件 my_program.log


与第一个答案相同的结果。:/
Gustav

1
您发布的屏幕快照看起来好像有很多终端转义序列。从启动板信息中,它使用ncurses(我使用下载了源代码bzr branch lp:live-f1,然后在中查找了代码README)。通过设置TERM为哑(export TERM=dumb),可以运行没有颜色的程序吗?源代码中还有一个TODO文件,记录在愿望清单上以保留驱动程序的历史记录。也许您可以联系开发人员以查看他们的计划,或者他们是否有办法保存结果。
steabert 2011年

12

当您从终端执行命令时,而不是在控制台上看到输出,您可以将其直接重定向到文件。在程序运行时,输出将被写入文件。举一个例子,您要使用ls命令将文件夹的内容写入名为list.txt的文件中

ls > list.txt

>运营商根据自己的需要重定向你的输出。


谢谢,这是有效的,但有一部分。内容应该是HTML,但是当我打开文件时,它是这样的(从文件中截取):VETTEL [21G(B [m [39; 49m。程序的名称是“ live-f1”。live-f1> live_f1_dump。日志
Gustav'3

@Gustav您的意思是在控制台中它会打印html,并在文件中显示上述几行?
裸照

是。这是我在运行建议的命令时得到的:upload.ee/image/1223166/ss_01.png。我的目标是将live-f1 feed中的Formula 1驾驶员位置保存到文件中。我去年通过在第一个终端上运行live-f1程序,然后启动第二个终端,并使用一些命令捕获了第一个终端屏幕并将其保存到文件中(从去年的文件复制:upload.ee/download/1223347)启动了它/0b6545ce227661452c8/html.log)。命令是这样的:tty“第一终端指针”“文件名”。可能是我用过的另一种“ tty”。
古斯塔夫

2

尝试使用script命令。不幸的是,它在抄本中放置了很多控制字符gobbledegook。但是,如果您在NCSSM CS站点上看到此链接则将找到一个不完美但很好的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.