Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Slith, The Snakeman!
Por simon
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Removendo ^M do VI
Linux user
Publicado por César Frias em 20/02/2010

Login: btc_cesar, 7663 pontos
[ Hits: 3910 ]

Removendo ^M do VI

Utilizando o editor de textos vi é comum acharmos no final das linhas de alguns arquivos os caracteres ^M, 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 e de quebra adicionarmos um mapeamento no arquivo .vimrc, portanto iremos usar o seguinte comando "<Esc>:%s/\r//g", assim iremos substituir todas as ocorrências do ^M até o final do arquivo.

Apenas substituí <Ctrl>V<Ctrl>M pelo \r, pois eles representam a mesma coisa.

Adicionando agora o mapeamento ao .vimrc:

Basta abrir o arquivo .vimrc (se ele não existir, crie-o) para edição e adicionar ao final dele essas 2 linhas:

" TiraM: Mapeamento para tirar os ^M do final das linhas
map ,tm :%s/\r//g

A primeira linha é apenas um comentário representado pelo " no início dela, já a segunda é a que realmente nos interessa, é ela que faz a "mágica".

Sempre que nos depararmos agora com algum arquivo cheio de ^M no final das linhas, basta pressionarmos "<Esc>,tm", assim chamaremos o mapeamento ",tm" que acabamos de criar e nos livraremos dos malditos ^M.

Um abraço a todos,

César Frias.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Automação comercial no Linux
   Dica Linux recomendada Nova versão do KDE
   Dica Linux recomendada Criar pacotes deb com o Debreate 0.7alpha6
   Dica Linux recomendada 2nd Free Software Meeting
   Dica Linux recomendada Recuperando dados e fotos de câmeras digitais e pen drives

Comentários
[1] Comentário enviado por Tulio Hoffimann em 20/02/2010 - 17:38h:

.

[2] Comentário enviado por enzo em 21/02/2010 - 21:58h:

Cesar


O VI também tem um outra opção:

<ESC> :set fileformat=unix

isto muda o arquivo para o formato unix,

Caso você queira um arquivo com o formato DOS basta executar:

<ESC> :set fileformat=dos

Espero ter contribuído.


Enzo

[3] Comentário enviado por joaomarcoslemos em 30/08/2011 - 12:13h:

consegui arrumar o arquivo da seguinte forma:

:1,$ s/^M/\r/g

onde ^M digitei ctrl+v ctrl+m

[]s

Joao

[4] Comentário enviado por btc_cesar em 30/08/2011 - 22:18h:

Boa noite João,

o seu comando também funciona, pois ctrl+v ctrl+m representa o ^M que queremos e no ínicio dele você diz que
quer substituir desde a linha 1 até o final do arquivo ( o que pode ser substituído por %) :D

Porém aqui na dica eu adicionei um mapeamento no .vimrc, para que ao digitar ,tm ele retire automaticamente os ^M.

Espero que a dica tenha sido útil :)

Abraços
César Frias


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.