Les caractères ^M que l'on peut rencontrer parfois dans les fichiers texte sous Unix proviennent du codage de la fin de ligne, qui diffère selon que le fichier a été édité sur un système Microsoft (CR LF, ou ^M et ^L) ou sur un Unix (LF seul). Les éditeurs de texte qui ne supportent pas le codage à la Microsoft affichent donc ce ^M superflu... Voyons ci-dessous des méthodes pour s'en débarrasser.
Sommaire |
Par fp (crontab_at_caramail_point_com)
Voilà enfin un modèle de fichier dos2unix pour ceux qui en cherchaient, Celui - ci est en ksh mais il est sûrement assez simple à adapter au bash...
Remarque (R. LEROY): Pour Debian si vous voulez faire encore plus rapide :
puis
Par Jonesy(jonesy_at_wanadoo_point_fr)
Suite au Trucs & Astuces de FP, que je vous invite à consulter, je vous propose une autre méthode afin de supprimer ces sales bêtes.
Avant tout, sachez que le que vous voyez dans votre fichier texte est la manifestation du retour à la ligne des fichiers sur un système Microsoft Windows.
Sur les Unix-like (Linux, *BSD, Mac OS X, ...) le retour à la ligne est le code ascii 10 ( ou en hexadécimal), 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 ( et ou et en hexadécimal).
Donc pour supprimer ces fameux , faites comme suit :
Ouvrez votre fichier avec (ou , , ...).
Une fois le fichier ouvert, tapez :
Pour rendre cette manipulation plutot ingrate automatique, faites en une macro !
Editer votre fichier et ajoutez y la ligne suivante :
Ensuite, lorsque vous ouvrirez un fichier avec des , il vous suffira de taper et .
Cette solution a l'avantage de marcher sur tous les systèmes Unix-like, car (ou un clone) est présent sur tous les systèmes Unix-like.
D'autres solutions possibles :
Par Rémi Collet
C’est prévu dans vim, en utilisant .
Suppression des ^M
Ajout des ^M
Remarque : il y a même le format Mac.
Si d'aventure vous vous retrouvez avec un fichier sur une seule ligne, et qu'au vu des commentaire précédents vous obtenez un fichier vidé de ses ^M mais toujours sur une ligne, reprenez le fichier brut (pas celui dans lequel on ne distingue plus les fins de lignes; autrement dit le fichier sur lequel vous n'avez appliqué aucune des précédentes méthodes) :
$ vim lefichierenquestion
une fois sous vim :
:%s/{ctrl-v}{ctrl-m}/{ctrl-v}{entrée}/g
et voilà!
Par Zeck (zeck_at_netliberte_point_org)
Syntaxe : dos2unix srcfile destfile
Où dos2unix est le script suivant :
Variante, par Manisero (manisero chez freesurf point fr) :
Par Arnaud ASSAD (arhuman_at_hotmail_point_com
fichieramodifier.extension
Accepte les widlcards :
Par Marcopol (mlebas_at_labeille_point_net)
Voilà un sujet qui inspire beaucoup ici, voici une solution plus conventionelle :
Cette solution est une des plus simples, et moins lourde que d'utiliser perl, awk ou d'écrire un script.
Par nicola
On peut utiliser recode ou konwert, le deuxième s’utilise ainsi :
Il trouve tout seul l’encodage en entrée.