Analizar por caracteres de control

Analizar por caracteres de control

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:

  1. conviertes todas las cosas de secuencia de control mediante 'uuencode -m v' o 'xxd'
  2. ahora puedes procesar mensajes de texto como de costumbre mediante awk
  3. 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.

información relacionada