Comment convertir des fichiers texte Windows vers Unix
Bonjour,
C'est une proposition d'ajout à la FAQ:
Citation:
Windows et Unix ont des caractères de fin de ligne différents. En cas d'import de fichiers texte (y compris des scripts bash par exemple), il faut les convertir au format Unix sans quoi l'interprêteur (/bin/sh ou /bin/bash par exemple) ne pourra pas les exécuter :
Le fichier au format Windows non converti au format Unix fera apparaitre des caractères ^M (ASCII=\x0D$)si vous l'ouvrez dans un éditeur (vi, vim, nano, gedit, ..). Il faut donc convertir les fichiers vers le format UNIX de la manière suivante :
Code:
find /chemin/vers/mon/repertoire/de/fichiersWindoz/ -type f -exec sed -i -e "s/\r$//" {} \;
Vérification que les caractères de fin de ligne ont bien été converti :
Code:
cat -Ev <mon_fichier_converti_au_format_UNIX>
ou plus simple :
Code:
cat -e <mon_fichier_converti_au_format_UNIX>
Note 1: cela n'est a priori pas nécessaire si vous copiez/collez un code écrit sous Windows dans un éditeur Linux. La conversion se fait à la volée par l'éditeur dans le cas de gedit par exemple. Par contre, il faut convertir les formats pour des fichiers transférés par copie de fichiers.
EDIT:
Note2: Il existe aussi le paquet dos2unix sur les principales distributions, mais ça impose d'ajouter un paquet supplémentaire, pas forcément utile sur une machine vouée à la production par exemple.