Quitar saltos de línea

Convierte texto multilínea en una sola línea preservando palabras.

Descripción

El salto de línea parece el concepto más sencillo del mundo hasta que intentas entender cómo funciona en detalle. En Unix, un salto de línea es el carácter LF (Line Feed, código ASCII 10). En Windows, es la secuencia CR+LF (Carriage Return más Line Feed). En el antiguo Mac OS clásico, era solo CR. El LF se impuso como estándar universal de internet: HTTP, SMTP, JSON y la mayoría de los protocolos de red usan LF o CR+LF como separador de línea, independientemente del sistema operativo del servidor. Esta diferencia entre sistemas es una fuente constante de frustración para los desarrolladores en entornos mixtos — el clásico caso del archivo que parece correcto en macOS pero que se abre como una sola línea en el Bloc de notas de Windows.

La historia de dos caracteres para representar el fin de línea viene de las máquinas de escribir. El Carriage Return era el mecanismo físico que empujaba el carro de vuelta al inicio de la línea. El Line Feed era el rodillo que avanzaba el papel a la siguiente línea. Las primeras impresoras y terminales de ordenador imitaron ese comportamiento mecánico. Cuando Ken Thompson y Dennis Ritchie crearon Unix, decidieron que un único carácter sería suficiente para marcar el fin de línea, simplificando el estándar. Microsoft mantuvo los dos caracteres en DOS y posteriormente en Windows por compatibilidad, y conserva esa tradición hasta hoy.

Unir varias líneas en una sola es una necesidad práctica en varias situaciones de desarrollo. Las consultas SQL formateadas en varias líneas para facilitar la lectura deben condensarse en una línea para pasarse como cadena en un script de shell o variable de entorno. Las claves privadas SSH y los certificados TLS almacenados en variables de entorno necesitan tener eliminados sus saltos de línea porque muchos sistemas no admiten valores multilínea. Los payloads JSON que deben incluirse como argumento de curl o como valor en un archivo .env también dependen de una única línea continua para funcionar correctamente.

Detalle técnico

LF, CR y CRLF: la guerra de los finales de línea

  • LF (\n, U+000A): estándar de Unix y Linux. Git, JSON, HTTP y prácticamente todos los protocolos de internet usan LF como terminador de línea.
  • CRLF (\r\n, U+000D U+000A): estándar de Windows y DOS desde el CP/M de los años 70. Muchos protocolos de red como SMTP y HTTP/1.1 especifican CRLF en las cabeceras, lo que genera confusión al mezclar el cuerpo del mensaje con las cabeceras.
  • CR (\r, U+000D): estándar del Mac OS clásico hasta la versión 9. Apple migró a LF en OS X (2001). Todavía aparece en algunos archivos legados y exportaciones de Excel de sistemas más antiguos.
  • Git y la configuración autocrlf: Git puede convertir automáticamente CRLF a LF en el commit (core.autocrlf=true en Windows) para mantener el repositorio con LF. Esto es esencial en proyectos con colaboradores en diferentes sistemas.
  • Archivos con finales de línea mixtos: los archivos que mezclan LF y CRLF en el mismo fichero son un problema real en los pipelines de CI/CD; algunas herramientas de linting fallan silenciosamente en esos casos.

Cuándo necesitas una línea continua

  • Variables de entorno: la mayoría de los sistemas operativos y frameworks no admiten saltos de línea en los valores de las variables de entorno. Las claves privadas SSH y los tokens JWT almacenados en .env deben estar en una sola línea.
  • Argumentos de curl: al pasar un payload JSON como argumento -d, el shell interpreta los saltos de línea literales. La cadena debe ser una línea continua o estar correctamente escapada.
  • Archivos .env: el formato estándar de dotenv no admite valores multilínea sin comillas especiales. Los certificados y claves en línea en .env necesitan tener eliminados sus saltos.
  • Consultas SQL en scripts de shell: al construir consultas dinámicamente en bash, los saltos de línea en las cadenas SQL pueden ser mal interpretados por el shell o el cliente de base de datos.
  • Cabeceras HTTP por línea de comandos: las cabeceras HTTP no pueden contener saltos de línea. Un valor de cabecera Authorization con un token JWT multilínea fallaría en silencio o causaría un error de análisis.

Guía de la herramienta

  • Qué son los saltos de línea Delimitadores (\n/\r\n) que separan líneas en texto y logs.

  • Qué hace la herramienta Reemplaza saltos por espacios y normaliza espacios extra para dejar una sola línea.

  • Por qué usarla Preparar payloads, variables de entorno y campos que no aceptan multilínea.

Fragmentos de Código

Eliminar saltos de línea en JavaScript
// Elimina CRLF y LF preservando las palabras con espacios
const unaLinea = texto
  .replace(/\r\n/g, ' ') // CRLF primero
  .replace(/[\r\n]/g, ' ') // luego CR y LF independientes
  .replace(/  +/g, ' ') // colapsa espacios dobles
  .trim();
Eliminar saltos en cadena compacta (sin espacios entre líneas)
// Une las líneas sin separador — útil para tokens, base64, hashes
const compacto = texto
  .replace(/\r\n|\r|\n/g, '') // elimina cualquier estilo de salto
  .trim();

Ejemplo

linha 1
linha 2 -> linha 1 linha 2

Preguntas frecuentes

¿Para qué sirve esta herramienta?

Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.

¿Se envían mis datos a algún servidor?

El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.

¿Puedo usarlo con datos reales en producción?

Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.