Déterminer le nouveau caractère de ligne dans un fichier texte?


8

étant donné un texte, existe-t-il un programme qui peut détecter ce qu'est le nouveau caractère de ligne, celui de Windows, Mac ou Linux?

Par exemple, le texte suivant est affiché par less

memor: ^ M ^ Mis stockage directement accessible par CPU ^ M ^ MLe terme "mémoire" est souvent (mais pas toujours) associé à la mémoire à semi-conducteur adressable, c'est-à-dire aux circuits intégrés constitués de transistors à base de silicium. ^ MLa mémoire à semi-conducteur est organisée en ^ Cellules mmemory

Je pensais que ^ M est le nouveau caractère de ligne sous Mac. Mais dans emacs, j'ai cherché par Ctrl-q Ctrl-m et je n'ai rien trouvé.

Merci.


1
filecommande dos2unixpourrait donner un indice, pourrait également aider.
Archemar

Réponses:


9

filerendra compte des fins de ligne pour les fichiers texte. Si vous exécutez filesur un fichier texte ASCII Unix / Linux / OSX, par exemple, il signalera simplement:

$ file test.txt
test.txt: ASCII text

Si, cependant, le fichier a des fins de ligne DOS / Windows, il signalera à la place:

test.dos: ASCII text, with CRLF line terminators

Jusqu'à OS 9, les Mac utilisaient CR comme fin de ligne. Lorsque présenté avec un tel fichier, filefera rapport:

test.mac: ASCII text, with CR line terminators

Avec OSX, les Mac sont convertis en fins de ligne Unix standard.


Si un fichier texte est un mélange de texte de Linux, Mac et Windows. fileRapportera- t-il toujours le bon caractère de nouvelle ligne?
Tim

@Tim Je l'ai testé sur certains fichiers mixtes et il a correctement signalé des fins mixtes. Par exemple, avec les trois types, il a rapporté ASCII text, with CRLF, CR, LF line terminators.
John1024

J'ai essayé ça et ça m'a donné ASCII text, with very long lines. Les terminateurs sont LF
wordsforhewise

Les terminateurs @wordsforthewise LF sont la norme unix et linux. Si un fichier a des terminateurs LF, alors filene mentionne pas quels terminateurs sont utilisés. Voir le premier exemple dans la réponse ci-dessus. Les terminateurs ne sont mentionnés que si le fichier contient des terminateurs non-unix. Voir les deuxième et troisième exemples dans la réponse ci-dessus. Séparément, il est probable que votre fichier comporte une ou plusieurs longues lignes.
John1024

1
Oui je comprends. Je pensais juste que c'était drôle, ça disait 'très longues lignes'
mots pour
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.