Remover quebras de linha

Converte texto multilinha para linha única, preservando as palavras.

Descrição

A quebra de linha parece o conceito mais simples do mundo até que você tenta entender como funciona em detalhes. No Unix, uma quebra de linha é o caractere LF (Line Feed, código ASCII 10). No Windows, é a sequência CR+LF (Carriage Return mais Line Feed). No antigo Mac OS clássico, era apenas CR. O LF venceu como padrão universal da internet: HTTP, SMTP, JSON e a maioria dos protocolos de rede usam LF ou CR+LF como separador de linha, independentemente do sistema operacional do servidor. Essa diferença entre sistemas é uma fonte constante de frustração para desenvolvedores em ambientes mistos — o famoso arquivo que parece correto no Mac mas abre como uma linha só no Notepad do Windows.

A história de dois caracteres para representar fim de linha vem das máquinas de escrever. O Carriage Return era o mecanismo físico que empurrava o carro de volta para o início da linha. O Line Feed era o rolo que avançava o papel para a linha seguinte. As primeiras impressoras e terminais de computador imitaram esse comportamento mecânico. Quando Ken Thompson e Dennis Ritchie criaram o Unix, decidiram que um único caractere seria suficiente para marcar o fim de linha, simplificando o padrão. A Microsoft manteve os dois caracteres no DOS e depois no Windows por compatibilidade, e mantém essa tradição até hoje.

Unir linhas em uma só é uma necessidade prática em várias situações de desenvolvimento. Queries SQL formatadas em múltiplas linhas para legibilidade precisam ser condensadas em uma linha para ser passadas como string em um script de shell ou variável de ambiente. Chaves privadas SSH e certificados TLS armazenados em variáveis de ambiente precisam ter as quebras removidas porque muitos sistemas não suportam valores multilinhas. Payloads JSON que precisam ser incluídos como argumento de curl ou como valor em um arquivo .env também dependem de uma linha única e contínua para funcionar corretamente.

Detalhamento técnico

LF, CR e CRLF: a guerra dos fins de linha

  • LF (\n, U+000A): padrão Unix e Linux. Git, JSON, HTTP e praticamente todos os protocolos da internet usam LF como terminador de linha.
  • CRLF (\r\n, U+000D U+000A): padrão do Windows e do DOS desde o CP/M nos anos 70. Muitos protocolos de rede como SMTP e HTTP/1.1 especificam CRLF nos cabeçalhos — o que cria confusão ao misturar corpo de mensagem com cabeçalhos.
  • CR (\r, U+000D): padrão do Mac OS clássico até a versão 9. A Apple migrou para LF no OS X (2001). Ainda aparece em alguns arquivos legados e exportações de Excel em sistemas antigos.
  • Git e a configuração autocrlf: o Git pode converter automaticamente CRLF para LF no commit (core.autocrlf=true no Windows) para manter o repositório com LF. Isso é essencial em projetos com colaboradores em diferentes sistemas.
  • Arquivos de texto 'mistos': arquivos que misturam LF e CRLF na mesma file são um problema real em pipelines de CI/CD — algumas ferramentas de linting falham silenciosamente nesses casos.

Quando você precisa de uma linha contínua

  • Variáveis de ambiente: a maioria dos sistemas operacionais e frameworks não suporta quebras de linha em valores de variáveis de ambiente. Chaves privadas SSH e tokens JWT armazenados em .env precisam estar em uma única linha.
  • Argumentos de curl: ao passar um payload JSON como argumento -d, o shell interpreta quebras de linha literais. A string precisa ser uma linha contínua ou escapada corretamente.
  • Arquivos .env: o formato padrão do dotenv não suporta valores multilinhas sem aspas especiais. Certificados e chaves inline em .env precisam ter quebras removidas.
  • Consultas SQL em scripts shell: ao construir queries dinamicamente em bash, quebras de linha em strings SQL podem ser mal interpretadas pelo shell ou pelo cliente de banco.
  • Cabeçalhos HTTP via linha de comando: cabeçalhos HTTP não podem conter quebras de linha. Um valor de cabeçalho Authorization com um token JWT multilinhas falharia silenciosamente ou causaria erro de parse.

Guia da ferramenta

  • O que são quebras de linha Delimitadores (\n/\r\n) que separam linhas em textos e logs.

  • O que a ferramenta faz Substitui quebras por espaço e normaliza excesso de espaços, deixando o conteúdo em uma linha.

  • Por que usar Preparar payloads, variáveis de ambiente e campos que não aceitam multilinha.

Exemplo de Código

Remover quebras de linha em JavaScript
// Remove CRLF e LF, preservando palavras com espaços
const umaLinha = texto
  .replace(/\r\n/g, ' ') // CRLF primeiro
  .replace(/[\r\n]/g, ' ') // depois CR e LF isolados
  .replace(/  +/g, ' ') // colapsa espaços duplos
  .trim();
Remover quebras para string compacta (sem espaços entre linhas)
// Une as linhas sem separador — útil para tokens, base64, hashes
const compacto = texto
  .replace(/\r\n|\r|\n/g, '') // remove qualquer estilo de quebra
  .trim();

Exemplo

linha 1
linha 2 -> linha 1 linha 2

Perguntas frequentes

Para que serve esta ferramenta?

Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.

Meus dados são enviados a algum servidor?

O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.

Posso usar em produção ou para dados reais?

Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.