97 votes

'^M' caractère de fin de ligne

Lorsque je lance un particulier script SQL dans des environnements Unix, je suis de voir un '^M' caractère à la fin de chaque ligne du script SQL en tant qu'il est fait l'écho de la ligne de commande. Je ne sais pas sur quel système d'exploitation le script SQL a été créé à l'origine.

Quelle en est la cause et comment puis-je résoudre ce problème?

78voto

Thomas Owens Points 45042

Elle est causée par le DOS/Windows ligne-caractères de fin. À l'instar d'Andy Whitfield a dit, la commande Unix dos2unix aidera à régler le problème. Si vous souhaitez plus d'informations, vous pouvez lire les pages de manuel pour la commande.

74voto

Tim Abell Points 2301

fixer les fins de ligne dans vi:

:set fileformat=unix

:w

39voto

ColinYounger Points 2941

La cause est la différence entre un Windows et un système d'exploitation basé sur Unix système d'exploitation basé sur magasin de la fin-de-ligne de marqueurs.

Les systèmes d'exploitation Windows, grâce à leur DOS patrimoine, magasin de fin de ligne comme une paire de caractères - 0x0D0A (retour chariot + saut de ligne). Systèmes d'exploitation Unix suffit d'utiliser 0x0A (un saut de ligne). L' ^M que vous voyez est une représentation visuelle de l' 0x0D (un retour chariot).

dos2unix aidera avec cela. Vous avez sans doute aussi besoin d'ajuster la source des scripts Unix-friendly".

24voto

Bernie Perez Points 5091

Le plus simple est d'utiliser vi. Je sais que le son est terrible, mais il est simple et déjà installé sur la plupart des environnements UNIX. Le ^M est une nouvelle ligne à partir de Windows/DOS de l'environnement.

à partir de l'invite de commande: $ vi filename

Ensuite, appuyez sur la touche ":" pour entrer en mode commande.

Rechercher et Remplacer tout le monde est - :%s/^M//g "Appuyez et gardez la touche ctrl enfoncée, puis appuyez sur V alors M" qui remplacera ^M avec rien.

Alors à écrire et à quitter entrez ":wq" Fait!

13voto

Andy Whitfield Points 1182

Essayez d'utiliser dos2unix de dépouiller l' ^M.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X