Je me demandais pourquoi si vous ouvrez un fichier texte créé dans le bloc-notes Windows sous Unix, vous constaterez qu'il a ^M
où il devrait y avoir une nouvelle ligne?
Ma compréhension est que dans Windows, chaque ligne se termine par \r\n
, c'est- 0x0D0A
à- dire en ASCII, alors qu'elle ^M
a une valeur ASCII 0x5E4D
. Je ne peux pas les relier l'un à l'autre.
Réponses:
Vous avez raison sur l'importance des fins de ligne; les deux systèmes d'exploitation s'attendent à ce que la ligne se termine par "\ n", mais Windows ajoute également un "\ r" avant que unix ne s'y attende, donc les programmes unix afficheront le "\ r" à leur manière.
Le fichier ne se termine pas réellement par les deux caractères "^" et "M", c'est juste une façon courante de représenter les caractères non imprimables. Les programmes afficheront "^" et une lettre correspondant à la valeur de l'octet, commençant par A pour 1. M est la 13ème lettre, et "\ r" est le code ASCII 13 (ou 0xD, comme vous l'avez dit), donc vous voyez "^ M "
la source
dos2unix
etunix2dos
convertir des fichiers texte entre formats.^J
pour\n
?