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!
biblio, 13 mars 2006
hy man;
thanks for that i just want to have the conversion to dos from a linux source code of squid, i use windows, i just wont to know how can i convert to dos from linux on windows
Daniel, 01 avril 2006
Ma solution alternative se base sur l'éditeur vim. Il suffit de mettre le fichier dans l'éditeur (ex : vi monfichier) puis de passer la commande de changement de fin de ligne:
- :set ff=unix --> fin de ligne avec LF
- :set ff=dos --> fin de ligne avec CR+LF
Puis de sauvegarder le fichier comme d'habitude. A noter que lorsque l'on charge dans vim un fichier au format dos, la ligne d'état (en bas) vous indique "[dos]". C'est très pratique.
DaiKo, 11 avril 2007
Merci très pratique la commande avec Vi :)
Majid, 28 novembre 2007
Bonjour :
Comment convertir des fichiers dos vers windows.
mercie d'avance.
Kammax, 06 janvier 2008
C'est parfait !
Personnellement j'ai eu le problème avec Matlab : la version Linux ne gère pas les fichiers (textes) générés avec la version Windows !!
Merci
fabienne, 21 avril 2008
est ce que quelqu'un peut me dire a quoi ca resenble car cela vient de mon tel mais l'ordi n'arrive pas a me le sortir autrement quelqu'un a une idée merci d'avance
wÐ,SŒÌ¬šeåÙF3ëR]C°f#nUꇥ;ƒFFùƒlŒçgTíÏlÚG)´´>M㹎D”úÔìQCQ³·dò£@ñ¹Ý)÷5 óíQ 3 Æe'§½g-QšV$‡MšÝ„¹W¹Ü½‰ê
M{i ÙàXî]Xîg;»›m±hÈݵSýÁô ‰äŒÊL>sb O'2=ë&V¦¥ÜQipª³®âv±$
¾™¬ðCÂ˸l†Õ‹I«»hérÐKHDM–sÃíZ±°7Îù?**í=8ôdôFኹb¿.rkR³Z´eÆë‡`U=¾”shZ.Ý<Wr½À
Janot, 04 août 2008
Bonjour,
je dispose d'un fichier csv où il y a dans une cellule un texte formaté sur plusieurs lignes dans cette cellule.
Ce fichier csv est transférer sur un site avec un script en PHP/HTM
Quand je veux regarder le résultat tout est sur une seule ligne et il n'y a pas de retour ligne.
que faut il faire pour avoir ce texte formaté avec ses retour ligne ?
Merci de vos conseils
Janot
lpp, 06 février 2010
hu

plux, 09 février 2006
scripts perl simples et légés,
explication super claire et efficace
merci :)