136 votes

Conversion du format de nouvelle ligne de Mac à Windows

J'ai besoin d'un script / utilitaire de conversion permettant de convertir un fichier de vidage .sql généré sur Mac en un fichier lisible sous Windows. C'est la continuation d'un problème que j'ai eu ici . Le problème semble être lié au formatage à la nouvelle ligne dans les fichiers texte, mais je ne trouve pas d’outil pour effectuer la conversion ...

138voto

Anne Points 16250

Windows utilise carriage return + line feed pour le saut de ligne:

\r\n

Unix utilise seulement Line feed pour le saut de ligne:

\n

En conclusion, il suffit de remplacer chaque occurence de \n par \r\n.
Les deux unix2dos et dos2unix ne sont pas par défaut disponible sur Mac OSX.
Heureusement, vous pouvez simplement utiliser Perl ou sed pour faire le travail:

sed -e 's/$/\r/' inputfile > outputfile                # UNIX to DOS  (adding CRs)
sed -e 's/\r$//' inputfile > outputfile                # DOS  to UNIX (removing CRs)
perl -pe 's/\r\n|\n|\r/\r\n/g' inputfile > outputfile  # Convert to DOS
perl -pe 's/\r\n|\n|\r/\n/g'   inputfile > outputfile  # Convert to UNIX
perl -pe 's/\r\n|\n|\r/\r/g'   inputfile > outputfile  # Convert to old Mac

Extrait de Code à partir de:
http://en.wikipedia.org/wiki/Newline#Conversion_utilities

129voto

JosephH Points 21074

Anne est une version améliorée de la réponse d'Anne. Si vous utilisez perl, vous pouvez modifier le fichier 'in-situ' plutôt que de générer un nouveau fichier:

 perl -pi -e 's/\r\n|\n|\r/\r\n/g' file-to-convert  # Convert to DOS
perl -pi -e 's/\r\n|\n|\r/\n/g'   file-to-convert  # Convert to UNIX
 

115voto

Steven Hirlston Points 121

Vous pouvez installer dos2unix avec Homebrew

Ensuite, vous pouvez faire ceci:

 mac2unix file-to-convert && unix2dos file-to-convert
 

17voto

Paul R Points 104036

Vous voulez probablement unix2dos:

Vous pouvez soit exécuter `` sur votre machine DOS/Windows à l’aide de Cygwin ou sur votre Mac à l’aide de MacPorts.

16voto

parahren Points 51

Il suffit de supprimer tr :

 tr -d "\r" <infile.txt >outfile.txt
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X