Comando de script sem caractere de lixo

2

Estou usando o comando script do Unix para gravar tudo o que é enviado para o terminal e colocá-lo em um arquivo de log. mas quando eu vejo o arquivo gravado, também inclui caracteres indesejados.

Então, como registrar a atividade do terminal sem caracteres indesejados.

Exemplo de saída:

Eu tentei converter o arquivo para dos usando todos , vim e também tentei com dos2unix , mas ignorando o arquivo dos2unix: Skipping binary file .

    
por Rahul Patil 15.08.2013 / 18:32

1 resposta

4

Não tenho certeza se você será capaz de se livrar deles facilmente. Na página script man:

Certain interactive commands, such as vi(1), create garbage in the typescript file. Script works best with commands that do not manipulate the screen, the results are meant to emulate a hardcopy terminal.

A saída acima que você está mostrando são os códigos de escape que produzem a saída colorida em seu terminal junto com o que parece ser alguém atingindo o backspace depois de fazer algumas correções nos erros de digitação.

usando col

Eu encontrei isso no SuperUser, que usa o comando col para limpar a saída:

$ col -bp typescript | less -R

Se isso não funcionar, você também pode experimentar esta variante:

$ col -bp < typescript

commandlinefu

Encontrei esta solução em commandlinefu.com que usa Perl e col juntos.

$ cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' \
                 | col -b > typescript-processed

Referências

por 15.08.2013 / 18:48

Tags