l para otras aplicaciones, considera la nueva línea (desambiguación) .
En el que computa, un newline (también conocido como una línea rotura o el end-of-line /carácter del EOL ) es un carácter especial o secuencia de carácteres significando el extremo de una línea de texto. El nombre viene del hecho de que el carácter siguiente después de que el newline aparezca en una nueva línea del - es decir, en la línea siguiente debajo del texto inmediatamente antes del newline. Los códigos reales que representan un newline varían a través de las plataformas de hardware y de los sistemas operativos, que pueden ser un problema cuando los datos de cambio entre los sistemas con diversas representaciones.
Hay también una cierta confusión si los newlines terminan o las líneas separadas. Si un newline se considera un separador, no habrá newline después de la línea pasada de un archivo. La convención general sobre la mayoría de los sistemas es agregar un newline incluso después la línea pasada, es decir, al newline del convite como línea adaptador. Algunos programas tienen problemas el procesar de la línea pasada de un archivo si no es newline terminado. Inversamente, los programas que esperan que el newline sea utilizado como separador interpretarán un newline final como comenzar una nueva línea (vacía). Esto puede dar lugar a una diversa línea cuenta que es divulgada para el archivo, pero es de otra manera generalmente inofensivo.
basados en el ASCII o un uso compatible LF (avance de línea, h de 0A) o CR (retorno del carro, 0Dh) del juego de caracteres individualmente, o CR seguido por LF (CR+LF, 0Dh 0Ah); ver abajo por la razón histórica de la convención de CR+LF. Estos carácteres se basan en comandos de la impresora: Avance de línea el indicó que una línea de papel debe alimentar fuera de la impresora, y un retorno del carro del indicó que el carro de impresora debe volver al principio de la línea actual. LF: Multics de , Unix y Unix-como los sistemas de ( GNU /linux, AIX, Xenix, mac OS x, etc.), BeOS, Amiga, OS del RISC, y otros
CR+LF: RT-11 y la mayoría del otro no-Unix temprano, OSes fuera de IBM, CP/M, MP/M, DOS, OS/2, Microsoft Windows de la DEC
CR: máquinas del comodoro de , familia de Apple II y OS del mac hasta la versión 9
Los sistemas de la unidad central de IBM de los sistemas-principal del EBCDIC, incluyendo el Z/OS ( OS/390 ) y el I5/OS ( OS/400 ) - utilizar NEL (línea siguiente, maleficio 15) como el carácter de newline. Observar que el EBCDIC también tiene caracteres de control llamados CR y LF, pero el valor numérico de LF (25) diferencia de el que está usado por ASCII (0A). Además, hay algunas variantes del EBCDIC que también utilizan NEL pero asigna un diverso código numérico al carácter. de la CDC utilizó por lo menos 4 carácteres de seis bits con el código de carácter 00 en el final de una palabra de 60 pedacitos para indicar end-of-line. El código de carácter 00 también fue utilizado para representar el carácter de los dos puntos ; así, si usted incorporó demasiado " consecutivo;: " los carácteres con el editor de textos de la CDC, usted puede ser que cree inintencionalmente un end-of-line adicional.
El OpenVMS utiliza un sistema de ficheros registrar-basado, que almacena archivos de texto como un expediente por línea. En la mayoría de los formatos de archivo, no se almacena ninguna línea adaptadores realmente, pero la facilidad de los servicios de gestión del expediente puede transparente agregar un adaptador a cada línea cuando es recuperada por un uso.
La línea longitud fijada fue utilizada por algunos sistemas operativos tempranos de la unidad central . En tal sistema, un end-of-line implícito fue asumido cada, por ejemplo, 80 carácteres. No se almacenó ninguÌn carácter de newline. Si un archivo fue importado del mundo exterior, las líneas más cortas que la línea longitud tuvieron que ser rellenadas con los espacios, mientras que las líneas que la línea longitud tuvieron que ser truncadas más de largo. Esto mímico el uso de las tarjetas perforadas en las cuales cada línea fue almacenada en una tarjeta separada, generalmente con 80 columnas en cada tarjeta.
La mayoría del mandato textual de los protocolos del Internet (HTTP incluyendo, smtp, ftp, IRC y muchos otros) el uso de ASCII CR+LF (0Dh 0Ah) en el nivel del protocolo, pero recomienda que los usos tolerantes reconocen LF solitario también. En la práctica, hay muchos usos que utilizan erróneamente el '\ n' del carácter de newline C en lugar de otro (véase el Newline de la sección en los lenguajes de programación abajo). Esto lleva a los problemas al intentar comunicar con los sistemas que se adhieren a una interpretación más terminante de los estándares; un tal sistema es el MTA de Qmail que rechaza activamente aceptar mensajes de los sistemas que envían LF pelado en vez del CR+LF required.
LF: Avance de línea, U+000A
CR: retorno del carro de , U+000D
CR+LF: CR siguió por LF, U+000D seguido por U+000A
NEL: Línea siguiente de , U+0085
FF: Alimentación de forma de , U+000C
LS: Línea separador, U+2028
de PS: Separador del párrafo de , U+2029
Éste puede parecer complicado excesivamente comparado a un acercamiento tal como convertir toda la línea adaptadores a un solo carácter, por ejemplo LF. El acercamiento simple analiza, sin embargo, al intentar convertir un archivo de texto de una codificación tiene gusto de EBCDIC a Unicode y a la parte posterior. Al convertir a Unicode, NEL tendría que ser substituido por LF, pero cuando convierte detrás sería imposible decidir a si un LF se trazara a un EBCDIC LF o NEL. El acercamiento admitido el estándar de Unicode permite que esta transformación información-preserve mientras que todavía permite a usos reconocer todos los tipos posibles de línea adaptadores.
La secuencia CR+LF estaba en de uso común en muchos sistemas informáticos tempranos que habían adoptado las máquinas del teletipo, típicamente un ASR33, como dispositivo de la consola, porque esta secuencia fue requerida para colocar esas impresoras al principio de una nueva línea. En estos sistemas, el texto a menudo fue compuesto rutinario para ser compatible con estas impresoras, puesto que el concepto de los drivers de dispositivo que ocultaban tales detalles del hardware del uso no estaba todavía bien desarrollado; los usos tuvieron que hablar directo con la máquina de teletipo y seguir a sus convenciones. La separación de las dos funciones encubrió el hecho de que la cabeza de impresión no podría volver de la extrema derecha al principio de la línea siguiente en tiempo one-character. Ése es porqué la secuencia fue enviada siempre con el CR primero. De hecho, era a menudo necesario enviar los carácteres adicionales (CRS extraño o NULs, se no hacen caso que) para dar a la cabeza de impresión hora de moverse al margen izquierdo. Incluso después los teletypes fueron substituidos por las terminales por tarifas más altas del baudio, muchos sistemas operativos todavía apoyaron el envío automático de estos carácteres de terraplén, para la compatibilidad con terminales más baratos que el carácter múltiple required mide el tiempo para enrollar la exhibición.
el MS-DOS, construido sobre una copia CP/M llamó el 86-DOS (que el Microsoft compró y retituló), CP/M adoptado CR+LF; El uso de CP/M de CR+LF tuvo sentido para usar las terminales vía líneas seriales. El sistema operativo posterior de Windows de Microsoft heredó a esta convención.
El lenguaje de programación C proporciona el '\ n' (newline) de las semencias de escape y el '\ r' (retorno del carro). Sin embargo, contrariamente a la creencia popular, éstos de hecho no se requieren ser equivalentes a los caracteres de control del ASCII LF y de CR. El estándar de C garantiza solamente dos cosas: Cada uno de estos mapas de las semencias de escape a un número puesta en práctica-definido único que se puede almacenar en un solo valor de char.
En las plataformas de Unix, donde C originó, la secuencia nativa del newline es ASCII LF (0x0A), así que el '\ n' fue definido simplemente para ser ese valor. Con la representación interna y externa siendo idéntica, la traducción se realizó en modo de texto da vuelta con eficacia en un no-op, haciendo modo de texto y el modo binario se comporta iguales. Esto ha causado a muchos programadores que desarrollaron su software en los sistemas de Unix para no hacer caso simplemente de la distinción totalmente, dando por resultado el código que no es portable a diversas plataformas.
Otro problema común es el uso del '\ n' al comunicar usar un Internet Protocol que asigne el uso por mandato de ASCII CR+LF para las líneas de conclusión. El '\ n' de la escritura a una corriente del modo de texto trabaja correctamente en los sistemas de Windows, pero produce solamente LF en Unix, y algo totalmente diferente en sistemas más exóticos. Usar " \ r \ n" en modo binario es levemente mejor, pues trabaja en muchos sistemas ASCII-compatibles, pero todavía falla en el caso general. Un acercamiento es utilizar modo binario y especificar los valores numéricos de la secuencia de control directo, " \ x0D \ x0A" .
El Perl [HTTP //perldoc.org/functions/binmode.html] y el C++ proporcionan la misma interpretación del '\ n' que la C.C++ también proporciona el std:: endl, que es una función que emite la representación de sistema subyacente de un newline, después limpia la corriente con un chorro de agua.
El Java también proporciona semencias de escape del '\ n' y del '\ r'. En contraste con C, éstos se garantizan para representar los valores U+000A y U+000D, respectivamente. Las bibliotecas de la entrada-salida de Java transparente no traducen éstos a secuencias plataforma-dependientes del newline en entrada o salida. En lugar, proporcionan las funciones para escribir una línea completa que agregan automáticamente la secuencia nativa del newline, y las funciones para las líneas de la lectura que aceptan cualquiera de CR, de LF, o de CR+LF como línea adaptador (véase BufferedReader.
Como std:: endl para C++ mencionado anteriormente, algunas idiomas han creado las variables especiales, los constantes y las subrutinas para facilitar newlines durante la ejecución de programa. Otro ejemplo es el PHP PHP_EOL constante, que producirá o el '\ r \ n' o el '\ n' apropiado al sistema operativo el programa se ejecuta encendido. Aunque las facilidades de tramitación especiales del newline pueden ayudar a la ejecución durante tiempo de pasada, no aseguran la validez de los newlines para el código fuente sí mismo.
El problema puede ser duro de manchar si algunos programas manejan los newlines extranjeros correctamente mientras que no lo hacen otros. Por ejemplo, un recopilador puede fallar con errores de sintaxis obscuros aunque el archivo de fuente parece correcto cuando está exhibido en la consola o en un redactor . Los editores de textos modernos reconocen todos los sabores de los newlines de CR/de LF y permiten generalmente que el usuario convierta entre los diversos estándares. Los hojeadores del Web son generalmente también capaces de exhibir los archivos de texto de diversos tipos.
El File Transfer Protocol puede convertir automáticamente newlines en los archivos que son transferidos entre los sistemas con diversas representaciones del newline cuando la transferencia se hace en " Mode" del ASCII;. Sin embargo, la transferencia de archivos binarios en este modo tiene generalmente resultados desastrosos: Cualquie ocurrencia del sequence&mdash del octeto del newline; cuál no tiene línea semántica del adaptador en este contexto, pero es apenas parte de una secuencia normal de bytes— será traducido a cualquier representación del newline el otro sistema utiliza, con eficacia corrompiendo el archivo. Los clientes del ftp emplean a menudo una cierta heurística (por ejemplo, inspección de las extensiones de nombre de fichero para seleccionar automáticamente el binario o el modo del ASCII, pero en el extremo incumbe al usuario a cerciorarse de que sus archivos están transferidos en el modo correcto. Si hay alguna duda en cuanto a el modo correcto, el modo binario debe ser utilizado, pues entonces no se alterará ningunos archivos por el ftp, aunque pueden exhibir incorrectamente.
En los sistemas de Windows sin un mejor redactor, el redactor viejo EDIT del MS-DOS que todavía envía con las versiones modernas de Windows se puede utilizar para convertir un archivo de texto de Unix a los newlines de DOS/Windows. Una manera simple de hacer esto está creando un atajo a EDIT en la mesa (el menú del contexto/nuevo/ataja/" edit" /Después/final), arrastrando el archivo de texto en la pregunta sobre ella, y después salvando el archivo otra vez (archivo/excepto).
Los redactores son a menudo inadecuados para convertir archivos más grandes. Para archivos más grandes (en Windows Nt/2000 /XP) usted puede utilizar el comando siguiente: MECANOGRAFIAR unix_file | ENCONTRAR el " " /V > dos_file
En muchos sistemas de Unix, el dos2unix (a veces nombrado fromdos) y las utilidades Unix2dos (a veces nombrado todos) se pueden utilizar para traducir entre los newlines del ASCII CR+LF (DOS/Windows) y de LF (Unix). Diversas versiones de estos comandos varían levemente en su sintaxis. Sin embargo, el comando del tr del está disponible en virtualmente cada Unix-como sistema de y se puede utilizar para realizar operaciones arbitrarias del reemplazo en solos carácteres. Un archivo de texto de DOS/Windows se puede convertir al formato de Unix simplemente quitando todos los carácteres del ASCII CR con tr - d < “\ r”; inputfile > outputfile o, si el texto tiene solamente CRs, convirtiendo CRs a LFs con <” “\ n” “\ r del tr; inputfile > outputfile
Las mismas tareas se pueden realizar con el Sed, o en Perl si la plataforma tiene un intérprete de Perl: sed - del r de e > inputfile del de “s/$/\”; outputfile # UNIX al DOS (que agrega el CRS) sed - > inputfile del de e “s \ r$//”; outputfile # DOS a UNIX (que quita el CRS) Perl - p - s de e “(\ r \ n|\ n|\ > inputfile del de r) \ r \ n/g”; outputfile # convertido al DOS Perl - p - s de e “(\ r \ n|\ n|\ > inputfile del de r) \ n/g”; outputfile # convertido a UNIX Perl - p - s de e “(\ r \ n|\ n|\ > inputfile del de r) \ r/g”; outputfile # convertido al mac viejo
Para identificar qué tipo de línea se rompe un archivo de texto contiene uno puede utilizar el Grep del . Los comandos siguientes del grep repetirán el nombre de fichero (en este caso myfile.txt) a la línea de comando si el archivo está del estilo especificado:
grep - “\ r \ n” myfile.txt del PL # archivo de estilo de UNIX de la demostración (LF terminado) grep - “\ r \ n” myfile.txt del Pl # archivo de estilo del DOS de la demostración (CRLF terminado)
Los comandos antedichos trabajarán bajo sistemas de Unix o en el Cygwin bajo Windows. Observar que estos comandos hacen algunas asunciones sobre las clases de archivos que existan en el sistema (está asumiendo específicamente solamente UNIX y el files&mdash del DOS-estilo; ningunos archivos de estilo del OS 9 del mac). Comprobar - P, - el L, y - l opciones para entender cómo trabaja.
Esta técnica se puede combinar más a fondo con el hallazgo del a los archivos de lista recurrentemente. Por ejemplo, la voluntad siguiente encontrar todo el UNIX-estilo archiva en un árbol de directorio:
hallazgo. - " conocido; *" - exec grep - PL “\ r \ n” {} \; > unix_files.txt
En los sistemas de UNIX, la utilidad del archivo del proporciona una manera conveniente de identificar qué tipo de línea rompe un archivo de texto contiene. dos2unix, unix2dos, mac2unix, unix2mac, mac2dos, dos2mac puede realizar conversiones. El comando de flip puede también ser útil.
.
| Random links: | El motín de Caine (película) | Wellsburg, Virginia Occidental | Billy Boyd | Anhu de Radhiallahu ' |