Как записать содержимое терминала в файл

13

Вот моя ситуация: я открываю терминал и запускаю программу, которая отображает прямую трансляцию в терминале (текст), что меняется каждую секунду. Во время работы этой программы можно использовать только клавишу «Ввод» (она выходит из этой программы). Таким образом, вы не можете вводить что-либо еще в консоли.

Я хотел бы записать это содержимое терминала в файл, как после каждой секунды.

Как это сделать? Открывая 2-ю консоль и используя какую-то команду? Не могу заставить его работать с командой setterm -dump.

Gustav
источник
1
Хм, какое приложение это? Если вы не очень хорошо проверили, убедитесь, что в приложении есть возможность сохранить выходной файл.
Северо Раз
Сделал это проверить. Это не так. Иначе у меня не было бы этой проблемы. Программа в прямом эфире-f1, launchpad.net/live-f1
Густав

Ответы:

16

Вы можете направить свой вывод в teeпрограмму ( описание ):

my_program ... | tee my_program.log

Это покажет выходной сигнал на терминале, но также запишет его в файл my_program.log

steabert
источник
Тот же результат, что и с первым ответом. : /
Густав
1
Снимок экрана, который вы разместили, выглядит так, как будто в нем много конечных escape-последовательностей. Из информации панели запуска он использует ncurses (я скачал исходники с bzr branch lp:live-f1, затем пошел смотреть в README). Можете ли вы запустить программу без цветов, установив TERMdumb ( export TERM=dumb)? У источника также есть TODOфайл, отмечающий в списке желаний вести историю драйверов. Возможно, вы можете связаться с разработчиками, чтобы узнать, что они планируют, или у них есть способ сохранить результаты.
Steabert
12

Когда вы выполняете свою команду из терминала вместо того, чтобы видеть вывод на своей консоли, вы можете перенаправить ее прямо в файл. Пока программа запускается, вывод будет записан в файл. Например, скажем, вы хотите записать содержимое вашей папки с помощью команды ls в файл с именем list.txt

ls > list.txt

>Оператор переадресует вывод в соответствии с вашими потребностями.

с обнаженной грудью
источник
Спасибо, это работает, но частично. Содержимое должно быть HTML, но когда я открываю файл, это выглядит примерно так (отрывок из файла): VETTEL [21G (B [м [39; 49 м. Название программы - «live-f1». Live-f1> live_f1_dump. бревно
Густав
@ Густав, ты имеешь в виду, что в консоли он печатает html, а в файле вышеуказанные строки?
топлесс
Да. Вот что я получаю, когда запускаю предложенную вами команду: upload.ee/image/1223166/ss_01.png . Моя цель - получить позиции пилотов Формулы 1 из канала live-f1 в файл. Я запустил его в прошлом году, запустив программу live-f1 на 1-м терминале, затем запустив 2-й терминал и используя некоторую команду, которая захватила экран 1-го терминала и сохранила его в файл (копия из прошлогоднего файла: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Команда была примерно такой: tty "1-й указатель терминала" "имя файла". Возможно, это было что-то еще, что я использовал для этого.
Густав
2

Попробуйте использовать scriptкоманду. К сожалению, в расшифровке стенограммы много контрольных символов. Однако, если вы увидите эту ссылку на сайте NCSSM CS, вы найдете несовершенное, но довольно хорошее решение проблемы.

ncmathsadist
источник