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:
- você converte todo o material seq de controle por 'uuencode -m v' ou 'xxd'
- agora você pode processar o texto normalmente pelo awk
- 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