Analisar por caracteres de controle

Analisar por caracteres de controle

Estou tentando analisar a saída de um comando que espera gravar na tela. Possui dados separados por sequências de controle de movimentação para origem (para o VT220, ESC[1;1H). Eu só preciso da última parte (ou seja, após a última mudança para a origem).

Eu tentei fazer isso de várias maneiras (principalmente awk e sed), mas o problema é sempre que partes da sequência de controle têm um significado especial (para o programa, não apenas para o shell), e não consigo citá-las quando substituo a saída do tput .

Alguma sugestão?

EDITAR:

Aqui está um exemplo do que estou procurando analisar ( ESCé o caractere 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

Estou procurando o seguinte, que seria o que estaria no terminal após a execução do programa.

Page 3; line 1
Page 3; line 2

Responder1

a maneira mais fácil de lidar com seu problema:

  1. você converte todo o material seq de controle por 'uuencode -m v' ou 'xxd'
  2. agora você pode processar o texto normalmente pelo awk
  3. afinal você converte novamente por 'uudecode -o -' ou 'xxd -revert'

Como alternativa, use: bbe - um editor semelhante ao sed para arquivos binários

se você precisar de uma resposta mais específica, preciso de um exemplo de programa mais específico

informação relacionada