Estoy intentando analizar el resultado de un comando que espera escribirse en la pantalla. Tiene datos separados por secuencias de control de movimiento al origen (para el VT220, ESC[1;1H). Sólo necesito la última parte (es decir, después del último movimiento al origen).
He intentado hacer esto de varias maneras (principalmente awk y sed), pero el problema siempre es que partes de la secuencia de control tienen un significado especial (para el programa, no solo para el shell), y no puedo citarlas cuando sustituyo la salida de tput. .
¿Alguna sugerencia?
EDITAR:
Aquí hay un ejemplo de lo que estoy buscando analizar ( ESCes el carácter de escape):
Page 1; line 1
Page 1; line 2
ESC[1;1HPage 2; line 1
Page 2; line 2
ESC[1;1HPage 3; line 1
Page 3; line 2
Estoy buscando obtener lo siguiente, que es lo que estaría en la terminal después de que se haya ejecutado el programa.
Page 3; line 1
Page 3; line 2
Respuesta1
la forma más fácil de manejar su problema:
- conviertes todas las cosas de secuencia de control mediante 'uuencode -m v' o 'xxd'
- ahora puedes procesar mensajes de texto como de costumbre mediante awk
- después de todo, vuelves a convertir mediante 'uudecode -o -' o 'xxd -revert'
Utilice alternativamente: bbe - un editor tipo sed para archivos binarios
Si necesita una respuesta más específica, necesito una muestra de programa más específica.