J'ai essayé d'ouvrir un fichier texte créé sous windows dans Mandriva mais j'ai des problèmes avec les retours à la ligne... Comment qu'on fait?!
C'est un classique! Si vous avez besoin de transférer des fichiers texte entre DOS/Windows, un Mac, ou Linux, vous allez rencontrer ce problème avec les retours à la ligne... Sous DOS, chaque ligne de texte se termine par CR/LF (ASCII 13 + ASCII 10), sous Linux, LF. Donc, si vous regardez un fichier DOS sous Linux, chaque ligne se termine avec un truc bizarre, qui ressemble à un caractère "M". Inversement, un fichier Linux sous DOS va apparaître comme infiniment long, sans retour à la ligne...
La plupart des programmes Linux savent gérer le problème automatiquement, mais il en reste quelques uns qui posent problème. Par exemple, j'ai remarqué que les programmes écrits en Fortran se plantent régulièrement.
Pareil sous windows, beaucoup de programmes savent gérer le problème. Mais il y a des exceptions, comme le notepad par exemple.
Heureusement, sous Mandriva, c'est très simple! Il suffit d'installer
unix2dos
et
dos2unix
Quand vous voulez convertir un fichier texte Windows vers Unix, ouvrez une console (Figure 1), placez-vous dans le bon dossier, et tapez
dos2unix le_fichier_que_je_veux_convertir.txt
Quand vous voulez convertir un fichier texte Unix vers Windows, ouvrez une console
unix2dos le_fichier_que_je_veux_convertir.txt
En fait, ces programmes sont très très simples, souvent une seule ligne de Perl! Donc pendant que j'y suis voici quelques exemples...
Ce script convertit les fichiers unix vers dos:
#!/usr/bin/perl -pi
s/\n/\r\n/;
Souvez-le sous unix2dos.pl, rendez-le éxécutable (chmod a+x unix2dos.pl) et vous êtes prêts.
Voici le code pour dos2unix.pl
#!/usr/bin/perl -pi
s/\r\n/\n/;
Enfin, pour ceux qui traitent avec des Macs, voici mac2unix.pl:
#!/usr/bin/perl -pi.unix
s/\r/\n/g;
et unix2mac.pl:
#!/usr/bin/perl -pi.unix
s/\n/\r/g;
Voilà, à priori, tous vos problèmes sont réglés!
