Como especificar uma expressão sed para remover caracteres octal que não sejam de impressão de um arquivo de texto

1

Eu sou novo no sed e estou limpando um arquivo muito grande. O documento limpo parece correto, mas quando eu o leio no meu R, ele mostra que cada linha é anexada com 6\t no final de cada linha. Eu descobri que \t é uma tabulação e que 6 é um octl (?), Mas eu ainda não entendi como colocar isso em uma expressão apropriada.

Qualquer assistência a um novo usuário sed (e expressões reg!) seria muito apreciada.

    
por Brian P 05.02.2015 / 21:29

1 resposta

1

O seguinte funciona com bash :

sed $'s/6\t$//' infile >outfile

O regex 6\t$ corresponde a um octal 016 e uma guia no final de uma linha. Se esta string for encontrada, ela será substituída por nada.

O formato da string $'...' requer bash . Eu testei o acima com GNU sed , mas supostamente deve funcionar com BSD sed também.

Outro método, que funciona com o GNU sed sem bash , é:

sed 's/\o016\t$//' infile >outfile
    
por 05.02.2015 / 22:04

Tags