@Bud
Je ne suis pas sectaire, j'ai aussi du BSD !
@Ferois, c'est bizarre, ça. A moins de l'avoir téléchargé directement directement.
Un copier/coller d'un site vers ton éditeur de texte ne devrait pas avoir embarqué de caractères en trop.
Bud Spencer a écrit :L’important c’est [..] de [..] savoir
Bud a bien raison.
Voici l'histoire.
Les machines à écrire ont une sonnette en bout de ligne, et leur mécanique de changement de ligne a un levier, qui lorsqu'on le tire à fond vers la gauche, fait revenir le chariot au début, et fait tourner le rouleau d'une ligne.
Les premières imprimantes étaient des machines à écrire automatisées.
Pour imprimer à la ligne, on envoyait deux ordres ; Carriage Return (retour du chariot) et Line Feed (une ligne de plus). En pratique, on pouvait écrire en gras en faisant un retour chariot sans saut de ligne, et en récrivant les mêmes caractères par dessus !
Dans la table ASCII, les 32 premiers caractères sont les caractères de contrôle. On ne peut les afficher, mais ils ont un comportement interprétable par l'écran ou l'imprimante : 9 est la tabulation, 10 la ligne de plus, 13 le retour chariot, etc.
Les systèmes UNIX ont estimés qu'un seul caractère était nécessaire pour traduire un passage à la ligne. On l'appelle New Line et il se traduit par "\n" en C. Le caractère ASCII choisi est Line Feed (LF), 10 en décimal, OA en hexadécimal, et ^J en notation caret (J est bien la dixième lettre de l'alphabet) .
Sur Mac, même réflexion. Un seul caractère devrait suffire. Las, c'est l'autre caractère ASCII qui a été choisi : Carriage Return (CR), 13, OD, ^M.
Apple se tournant vers UNIX pour fonder MacOS X, tout le monde utilise maintenant LF.
Tout le monde ? Non, il existe un système irréductible, où la simplification n'a pas été faite et où les deux caractères sont toujours utilisés.
Ce fut le choix de DOS, et cela reste le cas sur le dernier Windows. Et la séquence est Carriage Return-Line Feed, CR-LF, [13, 10], 0x0D0A, ^M^J.
Sauf en C, où le "\n" est traduit automatiquement à la compilation par "\r\n" (return, new).
Cet état est connu dès le début et c'est ainsi que UNIX se dote des commandes dos2unix et unix2dos pour passer d'un système à l'autre. Bien-sûr, DOS et suivants ignorent superbement UNIX. Par ailleurs le protocole FTP, dédié au transfert de fichiers entre différents serveurs, propose deux modes de transfert : binaire (B), avec lequel aucune transcodification n'est faite, et texte (A), avec lequel les nouvelles lignes sont transcodées.
Voilà pourquoi c'est un cas classique et pourquoi je te demandais de faire un cat -vte et d'y voir ou pas des ^M