Remover ^M de arquivos no VI

Quando transportamos um arquivo do Windows para o Unix e o editamos no VI, muitas vezes encontramos aqueles ^M no final de cada linha. No meu caso gerei um DML via script e ele ficou repleto desses caracteres, impossibilitando o processamento.

Isso acontece pois no DOS/Windows o <enter> é representado por 2 caracteres (retorno de cursor e quebra de linha) enquanto no Linux ele é representado apenas pela quebra de linha.

Pois bem, se nós usarmos o comando “<Esc>+/^M” (sem as aspas) o vi irá procurar por linhas que comecem com a letra M, pois isso é uma expressão regular e o caractere “^” representa início de linha.

A forma correta a se usar seria a seguinte “<Esc>+/<Ctrl>V<Ctrl>M“, assim iremos achar todos os ^M que desejamos no final das linhas.

Porém o nosso objetivo aqui não é simplesmente achar os ^M e sim retirá-los, portanto iremos usar o seguinte comando “<Esc>:%s/\r//g“, assim iremos substituir todas as ocorrências do ^M até o final do arquivo.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>