Como gravar o conteúdo do terminal em um arquivo


13

Aqui está minha situação: abro o terminal e executo o programa que exibe a transmissão ao vivo no terminal (texto), o que muda a cada segundo. Somente a tecla "Enter" pode ser usada enquanto este programa estiver em execução (sai do programa). Portanto, você não pode digitar mais nada no console.

Eu gostaria de escrever esse conteúdo do terminal em um arquivo, como depois de cada segundo.

Como eu faço isso? Abrindo o 2º console e usando algum comando? Não é possível fazê-lo funcionar com o comando setterm -dump.


1
Hum, que aplicação é essa? Se você não verificou bem, verifique se o aplicativo tem uma opção para salvar a saída em algum lugar.
Severo Raz

Verificou isso. Não faz. Caso contrário, eu não teria esse problema. O programa é live-f1, launchpad.net/live-f1
Gustav

Respostas:


16

Você pode canalizar sua saída para o teeprograma ( descrição ):

my_program ... | tee my_program.log

Isso mostrará a saída no terminal, mas também a gravará no arquivo my_program.log


Mesmo resultado, como na 1ª resposta. : /
Gustav

1
A captura de tela que você postou parece ter muitas seqüências de escape terminais. Nas informações da barra de ativação, ele usa ncurses (baixei a fonte com bzr branch lp:live-f1e depois procurei na README). Você pode executar o programa sem cores definindo TERMpara dumb ( export TERM=dumb)? A fonte também possui um TODOarquivo, anotando na lista de desejos para manter um histórico dos drivers. Talvez você possa entrar em contato com os desenvolvedores para ver o que eles estão planejando ou se eles têm uma maneira de salvar resultados.
steabert

12

Quando você estiver executando seu comando no terminal, em vez de ver a saída no console, poderá redirecioná-lo diretamente para um arquivo. Enquanto o programa é executado, a saída será gravada no arquivo. Um exemplo digamos que você deseja gravar o conteúdo da sua pasta com um comando ls em um arquivo chamado list.txt

ls > list.txt

O >operador redireciona sua saída de acordo com suas necessidades.


Thx, isso funciona, mas em parte. O conteúdo deve ser HTML, mas quando abro o arquivo, é algo assim (recorte do arquivo): VETTEL [21G (B [m [39; 49m. O nome do programa é "live-f1". Live-f1> live_f1_dump. log
Gustav

@Gustav, você quer dizer que no console ele imprime html e no arquivo as linhas acima?
topless

Sim. É isso que recebo quando executo seu comando sugerido: upload.ee/image/1223166/ss_01.png . Meu objetivo é obter as posições dos pilotos de Fórmula 1 do feed live-f1 em um arquivo. Eu consegui funcionar no ano passado executando o programa live-f1 no 1º terminal, depois iniciando o 2º terminal e usando algum comando que capturou a primeira tela do terminal e salvei em um arquivo (copie do arquivo do ano passado: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Comando era algo assim: tty "ponteiro do 1º terminal" "nome do arquivo". Possível que fosse outra coisa que "tty" o que eu usei para isso.
Gustav

2

Tente usar o scriptcomando Infelizmente, ele coloca um monte de caracteres de controle trocado na transcrição. No entanto, se você vir esse link no site NCSSM CS , encontrará uma solução imperfeita, mas bastante boa para o problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.