Come scrivere il contenuto del terminale in un file


13

Ecco la mia situazione: apro il terminale ed eseguo il programma che visualizza il feed dal vivo nel terminale (testo) che cambia ogni secondo. Solo il tasto "Invio" può essere utilizzato mentre questo programma è in esecuzione (esce da quel programma). Quindi non puoi digitare nient'altro nella console.

Vorrei scrivere quel contenuto del terminale in un file, come dopo ogni secondo.

Come lo faccio? Aprendo la seconda console e usando qualche comando? Non riesco a farlo funzionare con il comando setterm -dump.


1
Hm, quale applicazione è questa? Se non hai controllato bene, dovresti assicurarti che l'applicazione abbia un'opzione per salvare l'output da qualche parte.
Severo Raz,

L'ho verificato. Non Altrimenti non avrei questo problema. Il programma è live-f1, launchpad.net/live-f1
Gustav,

Risposte:


16

È possibile reindirizzare l'output al teeprogramma ( descrizione ):

my_program ... | tee my_program.log

Questo mostrerà l'output sul terminale, ma lo scriverà anche nel file my_program.log


Stesso risultato come con la 1a risposta. : /
Gustav

1
Lo screenshot che hai pubblicato sembra contenere molte sequenze di escape terminali. Dalle informazioni del launchpad, utilizza ncurses (ho scaricato il sorgente con bzr branch lp:live-f1, quindi sono andato a cercare in README). Puoi eseguire il programma senza colori impostando TERMsu dumb ( export TERM=dumb)? La fonte ha anche un TODOfile, che si trova nella lista dei desideri per mantenere una cronologia dei driver. Forse puoi contattare gli sviluppatori per vedere cosa stanno pianificando o se hanno un modo per salvare i risultati.
steabert

12

Quando si esegue il comando dal terminale invece di vedere l'output sulla console, è possibile reindirizzarlo direttamente a un file. Durante l'esecuzione del programma, l'output verrà scritto nel file. Un esempio lascia supporre che desideri scrivere il contenuto della cartella con un comando ls in un file chiamato list.txt

ls > list.txt

L' >operatore reindirizza l'output in base alle proprie esigenze.


Grazie, questo funziona ma in parte. Il contenuto dovrebbe essere HTML, ma quando apro il file, è qualcosa del genere (cattura dal file): VETTEL [21G (B [m [39; 49m. Il nome del programma è "live-f1". Live-f1> live_f1_dump. diario di bordo
Gustav,

@Gustav intendi che in console stampa html e nel file le righe sopra?
topless il

Sì. Questo è ciò che ottengo quando eseguo il comando suggerito: upload.ee/image/1223166/ss_01.png . Il mio obiettivo è quello di ottenere le posizioni dei piloti di Formula 1 dal feed live-f1 in un file. L'ho fatto funzionare lo scorso anno eseguendo il programma live-f1 nel 1 ° terminale, quindi accendendo il 2 ° terminale e usando alcuni comandi ciò che ha catturato la schermata del 1 ° terminale e salvato in un file (copia dal file dell'anno scorso: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). Il comando era qualcosa del genere: tty "puntatore 1 ° terminale" "nomefile". Possibile che fosse qualcos'altro che "tty" quello che ho usato per quello.
Gustav,

2

Prova a usare il scriptcomando. Sfortunatamente, mette un sacco di carattere di controllo ingannato nella trascrizione. Tuttavia, se vedi questo link sul sito NCSSM CS troverai una soluzione imperfetta ma piuttosto buona al problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.