\r\n) ne sont pas écrits de la même façon dans le monde GNU/Linux et Unix (\n). Celà implique quelques soucis de lecture lors de transfert de fichier entre des systèmes hétérogènes. Néanmoins plusieurs des solutions existent pour s’abstenir de ces incommodités.
$dos2unix mon_fichier.txt
$fromdos mon_fichier.txt
D’ailleurs il existe leur equivalent pour faire la manipulation inverse. A savoir, transformer un fichier texte au format GNU/Linux (ou Unix) en un fichier texte pour MS Windows :
$unix2dos mon_fichier.txt
$todos mon_fichier.txt
Avec vi : [echap]:%s/[ctrl+v][ctrl+m]//
Avec emacs : M-%
Avec joe : [ctrl+k+f]\015r[enter]r
Avec sed (avec fichier temporaire) :$sed -e 's/[ctrl+v][ctrl+m]//' mon_fichier.txt > mon_nouveau_fichier.txt
Avec sed (sans fichier temporaire) :$sed -ie 's/[ctrl+v][ctrl+m]//' mon_fichier.txt
Avec tr :$cat mon_fichier.txt | tr -d '\r' > mon_nouveau_fichier.txt
Avec le perl :$perl -pi -e 's/\r\n/\n/' mon_fichier.txt
^M, il faut taper la séquence de combinaisons de touches suivante :[ctrl+v][ctrl+m].| Date | Nom | Message |
Avec vim (un clone de vi), pour transformer un fichier DOS en fichier Unix :
:set ff=dos
:x (pour sauvegarder et quitter)
Pour transformer un fichier Unix en fichier DOS :
:set ff=unix
:x
Pour sauvegarder au format Mac, ":set ff=mac" bien sûr...
Pour en savoir plus : ":help file-formats"