Par jonesy.
Je vous propose deux méthodes afin de supprimer ces sales bêtes.
Avant tout, sachez que le ^M
que vous voyez dans votre fichier texte est la manifestation du retour à la ligne des fichiers sur un système Microsoft Windows.
Mais comment voir les caractères invisibles ? Je les vois.
Sur les Unix-like (Linux, *BSD, Mac OS X, ...) le retour à la ligne est le code ascii 10
(0A
en hexadécimal), qui signifie "Line Feed" ou "retour ligne" alors que sous un système de Microsoft, le retour à la ligne est l'ensemble des deux codes ascii dans l'ordre : 13
et 10
(0D
et 0A
en hexadécimal) qui signifie Carriage Return (retour chariot) et Line Feed (saut de ligne).
Donc pour supprimer ces fameux ^M
, c'est à dire le code ascii 13
de trop, faîtes comme suit :
Ouvrer votre fichier avec vi
(ou vim
, ...). Une fois le fichier ouvert, tapez :
:%s/<Ctrl-v><entrée>//g
Pour rendre cette manipulation plutôt ingrate automatique, faîtes-en une macro sous vim/gVim
! Editer votre fichier ~/.vimrc
et ajoutez-y la ligne suivante :
map v :%s/<Ctrl-v><Ctrl-v><Ctrl-v><Ctrl-v><Ctrl-v><entrée>//g
Ensuite, lorsque vous ouvrirez un fichier avec des ^M
, il vous suffira de taper v
et entrée
.
$ cat <votre_fichier> | tr -d ' ' ><votre_fichier>.tmp && mv <votre_fichier>.tmp <votre_fichier>
Ces solutions ont l'avantage de fonctionner sur tous les systèmes Unix-like.
Vous pouvez aussi utiliser tous les éditeurs qui ont un mode hexadécimal, tel que (x)Emacs
, ou encore Vim
. Ou un éditeur hexadécimal (bpe
).
Thèmes : #administration #developpement #jonesy #trucs
Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.