Aller au contenu

CRLF (fin de ligne Windows)

CRLF (de Carriage Return, Line Feed) : fin de ligne formée de deux caractères, le retour chariot (\r, code 13) puis le saut de ligne (\n, code 10). C'est la convention de Windows, de nombreux protocoles réseau (HTTP, SMTP) et de la RFC 4180 qui décrit le format CSV ; le module csv de Python l'emploie par défaut. Unix et Linux n'utilisent que \n (LF).

Lu par un outil Unix, le \r reste collé à la fin de chaque ligne : invisible à l'écran, il fait échouer les comparaisons ([[ $entete == "id,type" ]]), ajoute un caractère aux noms de fichiers et produit, dans un script lui-même enregistré en CRLF, des erreurs déroutantes comme $'\r': command not found ou un interpréteur introuvable sur la ligne shebang. printf '%q\n' "$v" ou cat -A le rendent visible ; ${v%$'\r'} le retire d'une valeur, dos2unix ou sed 's/\r$//' d'un fichier, et un .gitattributes avec eol=lf empêche Git de le réintroduire.

Dans les cours

Voir aussi