Determinar el nuevo carácter de línea en un archivo de texto?

8

dado un texto, ¿hay algún programa que pueda detectar cuál es el nuevo carácter de línea, el de Windows, Mac o Linux?

Por ejemplo, el siguiente texto se muestra por less

memor: ^ M ^ Mal almacenamiento directamente accesible por la CPU ^ M ^ M El término "memoria" a menudo (pero no siempre) está asociado con la memoria semiconductora direccionable, es decir, circuitos integrados que consisten en transistores basados ​​en silicio. ^ M La memoria semiconductora está organizada en ^ Células de la memoria

Pensé que ^ M es el nuevo personaje de línea en Mac. Pero en emacs, busqué por Ctrl-q Ctrl-m y no encontré nada.

Gracias.

Tim
fuente
1
filecomando debería dar una pista, dos2unixtambién podría ayudar.
Archemar

Respuestas:

9

fileinformará sobre finales de línea para archivos de texto. Si ejecuta fileun archivo de texto ASCII Unix / Linux / OSX, por ejemplo, informará simplemente:

$ file test.txt
test.txt: ASCII text

Sin embargo, si el archivo tiene terminaciones de línea de DOS / Windows, informará en su lugar:

test.dos: ASCII text, with CRLF line terminators

Hasta OS 9, Macs usaba CR como final de línea. Cuando se le presente dicho archivo, fileinformará:

test.mac: ASCII text, with CR line terminators

Con OSX, las Mac se convierten a finales de línea estándar de Unix.

John1024
fuente
Si un archivo de texto es una mezcla de texto de Linux, Mac y Windows. ¿Seguirá fileinformando el nuevo carácter de línea correcto?
Tim
@Tim Lo probé en algunos archivos mixtos e informó correctamente terminaciones mixtas. Por ejemplo, con los tres tipos, informó ASCII text, with CRLF, CR, LF line terminators.
John1024
Intenté esto y me dio ASCII text, with very long lines. Los terminadores son LF
palabras para el
@wordsforthewise Los terminadores LF son el estándar de Unix y Linux. Si un archivo tiene terminadores LF, entonces fileno menciona qué terminadores se usan. Vea el primer ejemplo en la respuesta anterior. Los terminadores solo se mencionan si el archivo tiene terminadores no Unix. Vea los ejemplos segundo y tercero en la respuesta anterior. Por separado, es probable que su archivo tenga una o más líneas largas.
John1024
1
Si entiendo. Simplemente pensé que era gracioso que decía 'líneas muy largas'
palabras para de lo contrario