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.

Gustav
fonte
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

Steabert
fonte
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.

topless
fonte
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.

ncmathsadist
fonte