# Reformater les fichiers textes générés sous Windows **dos2unix** est un utilitaire en ligne de commande pour reformater les fins de ligne des fichiers de scripts générés sous Windows (CR + LF => LF) Lors de l’exécution d’un fichier de commande sh sous linux si on obtiens une erreur du type : ``` -bash: XX.sh : /bin/sh^M : mauvais interpréteur: Aucun fichier ou dossier de ce type ``` c’est que le fichier sh contient un caractère "retour ligne" (= CR, le ^M de l’erreur) en fin de la ligne du **shebang**((Le **shebang**, représenté par # !, est un en-tête d’un fichier texte qui indique au système d’exploitation que ce fichier n’est pas un fichier binaire mais un script)) et qui empêche sa reconnaissance par l’interpréteur sh. A priori cette erreur est généré par l’éditeur de texte avec lequel a été créé le fichier sh, éditeur qui a formaté les retours de ligne "à la mode Windows" (CR + LF) alors que l’interpréteur de commande Linux attend un retour ligne "à la mode Unix" (LF uniquement). De ce fait la première ligne du fichier vu par l’interpréteur de commande est : ``` #! /bin/sh^M ``` alors qu’il attend : ``` #! /bin/sh ``` Pour résoudre ce problème, installer l’utilitaire dos2unix avec : ``` sudo apt-get install dos2unix ``` et l'exécuter sur le fichier sh à corriger : ``` dos2unix /chemin/vers/le-script-mal-formate.sh ```