Determinare il nuovo carattere di riga in un file di testo?


8

dato un testo, esiste un programma in grado di rilevare quale sia il nuovo carattere di linea, quello di Windows, Mac o Linux?

Ad esempio, il seguente testo è mostrato da less

memor: ^ M ^ Memoria errata direttamente accessibile dalla CPU ^ M ^ M Il termine "memoria" è spesso (ma non sempre) associato alla memoria dei semiconduttori indirizzabile, ovvero circuiti integrati costituiti da transistor a base di silicio. ^ MLa memoria dei semiconduttori è organizzata in ^ Cellule Mmemory

Ho pensato ^ M è il nuovo personaggio della linea sotto Mac. Ma in emacs, ho cercato Ctrl-q Ctrl-m e non ho trovato nulla.

Grazie.


1
fileil comando potrebbe dare un indizio, dos2unixpotrebbe anche aiutare.
Archemar,

Risposte:


9

filesegnalerà le terminazioni di riga per i file di testo. Se si esegue filesu un file di testo ASCII Unix / Linux / OSX, ad esempio, verrà riportato semplicemente:

$ file test.txt
test.txt: ASCII text

Se, tuttavia, il file ha terminazioni di riga DOS / Windows, verrà invece riportato:

test.dos: ASCII text, with CRLF line terminators

Fino a OS 9, i Mac utilizzavano CR come fine riga. Quando viene presentato con tale file, fileverrà segnalato:

test.mac: ASCII text, with CR line terminators

Con OSX, i Mac vengono convertiti in terminazioni di linea Unix standard.


Se un file di testo è un misto di testo proveniente da Linux, Mac e Windows. Riporterà filecomunque il carattere di nuova riga giusto?
Tim

@Tim L'ho provato su alcuni file misti e ha riportato correttamente finali misti. Ad esempio, con tutti e tre i tipi, ha riferito ASCII text, with CRLF, CR, LF line terminators.
Giovanni 1024,

Ci ho provato e mi ha dato ASCII text, with very long lines. I terminatori sono LF
parole come

I terminatori LF di @wordsforthewise sono lo standard unix e linux. Se un file ha terminatori LF, allora filenon menziona quali terminatori vengono utilizzati. Vedi il primo esempio nella risposta sopra. I terminatori vengono menzionati solo se il file ha terminatori non unix. Vedi il secondo e il terzo esempio nella risposta sopra. Separatamente, è probabile che il tuo file abbia una o più righe lunghe.
Giovanni 1024

1
Si, capisco. Ho solo pensato che fosse divertente che dicesse "linee molto lunghe"
parole come il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.