Si desea ver el archivo, puede enviar la salida a través de col -bp
; esto interpreta los caracteres de control. Entonces puede canalizar menos, si lo desea.
col -bp typescript | less -R
En algunos sistemas col
no aceptaría un argumento de nombre de archivo, use esta sintaxis en su lugar:
col -bp <typescript | less -R
cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed
aquí hay alguna interpretación de la cadena de entrada a perl
:
s/pattern//g
significa hacer una sustitución en la totalidad (elg
opción significa hacer todo en lugar de detenerse en el primer sustituto) cadena de entrada
aquí hay alguna interpretación del patrón de expresión regular:
\e
haga coincidir el carácter de control especial de "escape" (ASCII 0x1A)(
y)
son el principio y el final de un grupo|
significa que el grupo puede coincidir con uno de N patrones. donde están los N patrones[^\[\]]
o\[.*?[a-zA-Z]
o\].*?\a
[^\[\]]
significa- coincide con un conjunto de caracteres NOT donde los caracteres not son
[
y]
- coincide con un conjunto de caracteres NOT donde los caracteres not son
\[.*?[a-zA-Z]
significa- coincide con una cadena que comienza con
[
luego haz un.*?
no codicioso hasta el primer carácter alfa
- coincide con una cadena que comienza con
\].*?\a
significa- coincide con una cadena que comienza con
]
luego haz un.*?
no codicioso hasta que presione el carácter de control especial llamado "el carácter de alerta (campana)"
- coincide con una cadena que comienza con
Para una gran cantidad de script
salida, piratearía un script de perl de forma iterativa. De lo contrario, edite a mano con un buen editor.
Es poco probable que exista un método automatizado para eliminar los caracteres de control de script
salida de una manera que reproduzca lo que se mostró en la pantalla en ciertos momentos importantes (como cuando el host estaba esperando ese primero carácter de alguna entrada de usuario).
Por ejemplo, la pantalla puede estar en blanco a excepción de Andrew $
, si luego escribiste rm /*
y presionó la tecla de retroceso doce veces (mucho más de lo necesario), lo que se muestra en la pantalla al final depende de qué shell se estaba ejecutando, cuál es su stty
actual son las configuraciones (que puede cambiar a mitad de una sesión) y probablemente también algunos otros factores.
Lo anterior se aplica a cualquier método automatizado de captura continua de entrada y salida. La principal alternativa es tomar "capturas de pantalla" o cortar y pegar la pantalla en los momentos apropiados durante la sesión (que es lo que hago para las guías de usuario, notas para un registro diario, etc.).