Cómo escribir el contenido del terminal en un archivo

13

Aquí está mi situación: abro la terminal y ejecuto un programa que muestra la transmisión en vivo en la terminal (texto) que cambia cada segundo. Solo se puede usar la tecla "Enter" mientras este programa se está ejecutando (sale de ese programa). Entonces no puedes escribir nada más en la consola.

Me gustaría escribir el contenido de esa terminal en un archivo, como después de cada segundo.

¿Cómo lo hago? ¿Al abrir la segunda consola y usar algún comando? No puedo hacer que funcione con el comando setterm -dump.

Gustav
fuente
1
Hm, ¿qué aplicación es esta? Si no lo ha verificado bien, debe asegurarse de que la aplicación tenga una opción para guardar la salida en algún lugar.
Severo Raz
Lo comprobé. No lo hace. De lo contrario no tendría este problema. El programa es live-f1, launchpad.net/live-f1
Gustav

Respuestas:

16

Puede canalizar su salida al teeprograma ( descripción ):

my_program ... | tee my_program.log

Esto mostrará la salida en la terminal, pero también la escribirá en el archivo my_program.log

steabert
fuente
Mismo resultado que con la primera respuesta. : /
Gustav
1
La captura de pantalla que publicaste parece tener muchas secuencias de escape de terminal. De la información del launchpad, usa ncurses (descargué la fuente con bzr branch lp:live-f1, luego fui a buscar en el README). ¿Se puede ejecutar el programa sin colores estableciendo TERMdumb ( export TERM=dumb)? La fuente también tiene un TODOarchivo, señalando en la lista de deseos para mantener un historial de los controladores. Tal vez pueda contactar a los desarrolladores para ver qué están planeando o si tienen una forma de guardar resultados.
steabert
12

Cuando está ejecutando su comando desde la terminal en lugar de ver el resultado en su consola, puede redirigirlo directamente a un archivo. Mientras el programa ejecuta su, la salida se escribirá en el archivo. Un ejemplo, supongamos que desea escribir el contenido de su carpeta con un comando ls en un archivo llamado list.txt

ls > list.txt

El >operador redirige su salida de acuerdo a sus necesidades.

top-less
fuente
Gracias, esto funciona pero en parte. El contenido debe ser HTML, pero cuando abro el archivo, es algo como esto (recorte del archivo): VETTEL [21G (B [m [39; 49m. El nombre del programa es "live-f1". Live-f1> live_f1_dump. registro
Gustav
@Gustav quieres decir que en la consola imprime html y en el archivo las líneas anteriores?
topless
Si. Esto es lo que obtengo cuando ejecuto el comando sugerido: upload.ee/image/1223166/ss_01.png . Mi objetivo es obtener las posiciones de los conductores de Fórmula 1 del feed live-f1 en un archivo. Lo hice funcionar el año pasado ejecutando el programa live-f1 en la primera terminal, luego encendiendo la segunda terminal y usando algún comando que capturó la primera pantalla de la terminal y la guardé en un archivo (copia del archivo del año pasado: upload.ee/download/1223347 /0b6545ce227661452c8/html.log ). El comando era algo así: tty "primer puntero de terminal" "nombre de archivo". Posible que fuera algo más que "tty" lo que usé para eso.
Gustav
2

Intenta usar el scriptcomando. Desafortunadamente, pone mucho carácter de control gobbledegook en la transcripción. Sin embargo, si ve este enlace en el sitio de NCSSM CS , encontrará una solución imperfecta pero bastante buena para el problema.

ncmathsadist
fuente