retirar caracter ^M

1. retirar caracter ^M

Adeildo Feitosa
slack-negao

(usa Slackware)

Enviado em 20/03/2008 - 11:57h

Bom dia e desejando a todos uma ótima semana santa

galera é o seguinte para agilizar a edição dos arquivos de scripts do slack utilizar um programa ezmacro que os scripts rapidamente pra mim, depois de pronto levo o arquivo para o linux. O que acontece é o seguinte quando abro essa arquivo no linux no final de cada linha aparece um caracter descrito ( ^M ) se eu rodar o script com ele da erro então tenho que sair apagando todos os ^M, bem utilizo o mcedit para editar no linux e a pergunta é seguinte como faço para retirar esses ^m de uma vez só.
ja teve caso de eu apagar cerca de 5000 ^M desses.

Agradeço antecipadamente

ps: setiverem outra alternativa criar macro no linux aceito dicas.


  


2. vim

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/03/2008 - 12:08h

:%s/ctrl+v+enter//g

VI
:g/^M/s///




3. Deus te abençõe :)

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/03/2008 - 12:10h

So para completar a resposta de forma mais generica

:1,$s/<CTRL>+<V><CTRL>+<M>//g

onde
:1,$ -> primeira linha,Ultima linha do arquivo
g -> global

vale para vi/vim/ex

pode tbm ser deslocamento relativo:

:.-4,.+10s/<CTRL>+<V><CTRL>+<M>//g

pode-se utilizar com outros comandos por exemplo:
d -> apaga o bloco indicado
w -> Salva o bloco indecado com um novo nome (save as)


4. sugestão

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 20/03/2008 - 12:50h

tente utilizar o utilitario dos2unix (eu uso ele)
#dos2unix arquivo
facinho.
Se não tiver instalado o dos2unix é facil, tem em tudo quanto é canto ele.

Teoria:
Isso ocorre pq no Dos/Windows, o Enter é representado por 2 caracteres, o retorno do cursor e o incremento de linha (caracteres 13 e 10) e nos *nix somente pelo incremento de linha (10). Como trabalham diferentemente o editor do linux vai entender o caracter 13 como algo estranho.

Sugestão:
Pq não larga logo o windows e faz os scripts no linux.


5. editor de macro

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 20/03/2008 - 12:52h

não sei oque você realmente quer fazer de macro, mas ja testou o notepad++ ??? Eu nunca usei ele no linux mas me falaram que ele é bem próximo do ultraedit e trabalha bem com macros.


6. ou ainda no vi

Felipe Casagrande (pepi)
felipe_pepii

(usa Debian)

Enviado em 20/03/2008 - 13:48h

abra o arquivo com o editor vi e aperte DOIS PONTOS (:)

:set fileformat=unix

saia e salve, e pronto!


7. Re: retirar caracter ^M

Eduardo Henrique Roque
duhboy

(usa Debian)

Enviado em 20/03/2008 - 14:02h

poxa essa eu nem imaginava, vlew galera!!!

até


8. Agradecimentos

Adeildo Feitosa
slack-negao

(usa Slackware)

Enviado em 22/03/2008 - 09:52h

Valew galera vou testar todas as opções e posto o resultado Obrigado


9. retirar ultimo caratere ^M

Adeildo Feitosa
slack-negao

(usa Slackware)

Enviado em 10/06/2008 - 12:29h

Bem galera ja sei como retirar este simbolo de arquivos editados no windows, quando abre no linux aparece ^M.
para remover no linux utilizei o comando sed e a sintaxe é a seguinte

sed -i 's/.$//' nome do arquivos

o sed como alguns ja sabe é coamando para editar arquivos fazendo substituições, o (-i) informa ao sed que deve procurar e inserir no arquivos 's/.$//' substituir o utimo caracter das linhas por nada nome do arquivo você coloca o nome do zrquivos que quer modificar.

esse comando dessa forma ele se torna um pouco perigoso pois ele ja faz a modificação e salva caso os nobre amigo se sintam desconfortável em utilizar desta forma outra auternativa

sed -e 's/.$//' arquivo atual > arquivo novo

desta forma cria um arquivo novo ja com as a modificação sem alterar o original.

Obrigado e t+


10. Re: retirar caracter ^M

Marcos Junior
juninhocr

(usa Ubuntu)

Enviado em 05/11/2009 - 06:49h

cat -etv ARQUIVOCOM^M | sed -e 's#\^M\$##g' >> ARQUIVOSEM^M


11. retirar ^M

Marcus Aurelio do Bomfim Visgueira
visgueira

(usa Slackware)

Enviado em 16/04/2010 - 07:44h

Para os usuários do Slackware, informo o comando fromdos, que com esse intuitivo nome já diz tudo, é rápido e prático e ainda pode ser inserido em um shell script, a sintaxe é simples: fromdos < arquivo_com_"^M" > arquivo_sem_"^M".

Explicando melhor, o comando recebe o conteúdo do arquivo que contem o "^M", inclusive este, e redireciona a saída para ele mesmo ou outro arquivo. Importante ressaltar que pode ser usado o redirecionador >>, dependendo do caso.

Um exemplo prátido disso, por exemplo em um formulário html recebo os dados do IP, navegador do usuário, de quem mandou, bem como suas respostas a este, e armazeno em um arquivo no padrão CVS para um banco de dados textual, com o objetivo de auditar, quem e o quê respondeu, e para não ficar com esse caracter em meu banco, no final do script aplico um "fromdos < logacess >> acessos.txt"


12. retirar ^M

joao lemos
joaomarcoslemos

(usa Ubuntu)

Enviado em 30/08/2011 - 12:14h

consegui arrumar o arquivo da seguinte forma:

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

onde ^M digitei ctrl+v ctrl+m

[]s

Joao



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts