Sous linux la manipulation de fichier texte avec des commandes tel que sort et cut peut vite devenir un enfer si le fichier texte provient de windows.
Le problème des retours chariots
Sous windows les fins de ligne sont marquée par deux caractères : Le retour chariot et la fin de ligne (souvent notées \r\n dans les langages de programmation).
Sous linux le caractère fin de ligne est utilisé pour finir la ligne. Tous les outils de manipulation de texte en ligne de commande utilisent cette norme (qui est à mon avis la bonne).
Pour vous évitez tout problème je vais vous donner la commande magique qui permet tout simplement de supprimer les retours chariots.
Supprimer les retours chariots d'un fichier windows
pcr@home:~$ cat fichier-windows.txt | tr -d '\15' > fichier-linux.txt
tr est une commande qui permet, entre autre, de supprimer des caractères. 15 correspond à la valeur octale du retour chariot. L'option -d indique à tr de supprimer les caractères passés en paramètre.
En utilisant dos2unix
Une autre solution qui m'a été suggérée via les commentaires de loquehumaine et Grigric consiste à utiliser la commande dos2unix.
Installation de dos2unix
root@home:~# aptitude install dos2unix
A noter qu'un paquet alternatif tofrodos existe avec la commande dos2unix.
Utilisation de dos2unix
dos2unix est une commande qui permet de convertir un fichier texte entre le format DOS et le format Unix.
pcr@home:~$ dos2unix file.txt
Image : Canuckshutterer
















