A primeira vez que isso me mordeu, EU estava copiando um bloco de termos e condições de um PDF em uma resposta de suporte Parecia bom no PDF No momento em que ele pousou no meu editor ele se transformou em uma escada, cada linha se encaixando em uma nova linha no meio da página, porque o PDF tinha assado um retorno difícil no final de cada linha visual Fixá-lo à mão significava excluir uma nova linha, adicionar um espaço e repetir isso quarenta vezes Eu construí ferramentas suficientes no Toolz.dev para saber quando um trabalho vale a pena automatizar, e este tinha silenciosamente desperdiçado meu tempo por anos Então EU construí o remover linha quebra ferramenta, e este guia é tudo o que aprendi sobre por que o problema existe e como limpá-lo adequadamente.
tl;dr: Texto copiado de PDFs, e-mails e terminais geralmente tem uma quebra de linha no final de cada linha de exibição, em vez de apenas no final de cada parágrafo Colar deixa linhas quebradas e esfarrapadas O remover linha quebra ferramenta exclui essas novas linhas e une o texto com um separador que você escolher, e seu modo de reconhecimento de parágrafo mantém as linhas em branco entre os parágrafos para que o resultado seja lido como prosa, e não como uma linha gigante de execução. Tudo é executado no seu navegador, então nada é carregado.
Por que meu texto copiado está cheio de quebras de linha?
A resposta curta é que uma quebra de linha e uma quebra de parágrafo são duas coisas diferentes, e muito software as confunde.
Quando você digita um processador de texto ou um navegador, você pressiona Enter apenas no final de um parágrafo O texto é envolto automaticamente dentro do parágrafo, de modo que as linhas visuais que você vê são decididas em tempo real pela largura da janela Não há caracteres de quebra de linha dentro do parágrafo em tudo Isso é chamado de soft wrapping, e é por isso que o mesmo parágrafo reflui de forma limpa quando você redimensiona a janela.
Um monte de outras fontes fazem o oposto Um PDF armazena a posição de cada linha, então quando você copia texto fora dele, o extrator muitas vezes coloca um caractere de nova linha real no final de cada linha que vê na página E-mails de texto simples foram historicamente embrulhados em 72 ou 76 colunas com um retorno rígido em cada linha, uma convenção que antecede a web e ainda aparece em listas de discussão e respostas citadas Comentários de código, arquivos de log e qualquer coisa impressa em um terminal de largura fixa fazem o mesmo Em todos estes, a nova linha não está marcando o fim de um pensamento, está marcando o fim de uma linha física que por acaso era tão ampla.
Quando você cola isso em um lugar que faz embalagem suave, as duas idéias colidem Seu editor já envolve o texto para caber, e agora há retornos duros extras cortando as linhas curtas antes que elas cheguem à borda O resultado é a escada: linhas que quebram em lugares estranhos, se recusam a refluir e parecem quebradas em todos os tamanhos de janela, exceto aquele de onde foram copiadas.
O que a remoção de quebras de linha faz?
Remover quebras de linha significa excluir esses caracteres de nova linha e costurar as peças novamente para que as palavras fluam como texto contínuo novamente A única decisão real é o que colocar na lacuna onde cada nova linha costumava estar.
Na maioria das vezes você quer um único espaço, porque a nova linha estava em pé para o espaço entre duas palavras que uma frase normalmente teria Às vezes você não quer nada, por exemplo, quando um número longo ou um token de código foi dividido em duas linhas e precisa ser reunido sem lacuna E às vezes você quer uma vírgula ou outro separador, porque as linhas eram realmente uma lista e você quer que eles em uma linha como valores separados por vírgula A ferramenta dá-lhe tudo isso, além de um campo personalizado para qualquer outra coisa.
Há mais um caractere que vale a pena conhecer O Windows termina linhas com dois caracteres, um retorno de carro seguido por um feed de linha, escrito como CRLF O Unix e o macOS moderno usam um único feed de linha, LF. O software Mac muito antigo usava um retorno de carro solitário, CR. Se você misturar texto de diferentes fontes, você pode acabar com uma combinação irregular de todos os três, e um ingênuo encontrar e substituir que só procura por um deles deixa os outros para trás A ferramenta remover quebras de linha normaliza todos os três primeiro, por isso não importa de onde veio o seu texto, cada final de linha é tratado da mesma maneira.
Como removo quebras de linha, mas mantenho meus parágrafos?
Esta é a característica que transforma a ferramenta de um instrumento contundente em um útil, por isso vale a pena entender.
Se você simplesmente excluir cada nova linha em um documento, você obtém um parágrafo enorme Todas as frases são executadas juntas em uma única linha ininterrupta, e a estrutura que tornou o texto legível se foi Isso é ocasionalmente o que você quer, mas geralmente não é O que você quer é remover as quebras acidentais de linha dentro de cada parágrafo, mantendo as quebras deliberadas entre os parágrafos.
A ferramenta distingue os dois olhando para linhas em branco Uma única nova linha é tratada como uma quebra acidental dentro de um parágrafo e é removida Uma linha em branco, que é duas novas linhas seguidas, é tratada como um limite de parágrafo real e é mantida. Portanto, um documento que foi quebrado assim:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
sai como dois parágrafos limpos com uma linha em branco entre eles, em vez de uma linha longa Esta é exatamente a forma de texto copiado de um PDF ou um e-mail embrulhado, onde cada parágrafo é quebrado internamente, mas os parágrafos são separados por uma linha em branco Deixe a opção manter-parágrafo-breaks sobre, que é o padrão, ea ferramenta faz a coisa certa sem qualquer mais violino.
Quando você realmente quiser tudo em uma linha, desligue essa opção Cada nova linha em toda a entrada é então substituída pelo separador escolhido, que é como você transforma uma coluna de valores em uma única linha separada por vírgulas.
Qual separador devo escolher?
O separador é a cadeia que substitui cada quebra de linha removida A escolha certa depende do que as linhas representam Aqui está como as opções comuns se comportam na mesma entrada de três linhas apple, banana, cherry:
| separador | Resultado | Use-o quando |
|---|---|---|
| Espaço | apple banana cherry |
As linhas são palavras ou fragmentos de frases que devem ser lidos como prosa |
| nada | applebananacherry |
Um único token foi dividido entre linhas e deve retornar sem lacunas |
| Vírgula | apple, banana, cherry |
As linhas são uma lista que você deseja como valores separados por vírgulas |
| Ponto e vírgula | apple; banana; cherry |
Você precisa de um separador de lista que não entre em conflito com as vírgulas dos dados |
| Tubo | apple | banana | cherry |
Você está construindo uma linha de tabela Markdown ou um registro delimitado |
| Personalizado | O que quer que digite | Você precisa de um marceneiro específico, como - ou uma aba |
O espaço é o padrão porque está certo com muito mais frequência do que qualquer outra escolha para prosa comum. Os separadores de lista se destacam quando você está remodelando os dados em vez de lê-los, por exemplo, transformando uma coluna copiada de uma planilha em uma única linha que você pode colar em uma consulta.
O que as opções de limpeza fazem?
Duas alternâncias extras arrumam a saída além da própria junção, e ambas estão ativadas por padrão porque quase sempre ajudam.
O Trim remove os espaços em branco no início e no final de cada linha antes que as linhas sejam unidas Isso importa porque o texto copiado frequentemente carrega espaços à direita que você não pode ver e recuo no início de uma linha que você não deseja manter uma vez que a linha não seja mais sua própria linha Sem aparar, esses espaços perdidos sobrevivem à junção e aparecem como lacunas estranhas no meio do texto unido.
Os espaços de colapso vão um passo além e reduzem qualquer execução de dois ou mais espaços ou guias para baixo a um único espaço Uma vez que as linhas são unidas, é fácil acabar com espaços duplos onde um espaço à direita encontrou um espaço à esquerda, ou onde o texto original usou espaços para alinhar algo colapsá-los dá-lhe o espaçamento único que a prosa espera Importante, isso só toca espaços e abas, nunca as novas linhas que separam seus parágrafos, por isso não desfaz a junção com reconhecimento de parágrafo.
Há também uma opção remover-linhas vazias, desligado por padrão, para o caso em que a entrada tem linhas em branco perdidas você não quer se tornar lacunas de parágrafo Com ele ligado, linhas vazias são descartadas em vez de preservadas, o que é útil para limpar exportações em espaço duplo.
Fazer isso no navegador é seguro?
Sim, e este é um ponto que me preocupa porque é toda a filosofia de design por trás do Toolz.dev A ferramenta remover quebras de linha é executada inteiramente em seu navegador usando JavaScript O texto que você cola é processado na memória da página que você está olhando, e nunca é carregado em um servidor Não há conta, nem registro e nenhuma solicitação de rede que leve seu conteúdo para qualquer lugar.
Isso importa mais do que parece primeiro O texto que as pessoas mais frequentemente precisam refluir é texto que eles copiaram de algum lugar privado: um contrato fora de um PDF, um e-mail interno, uma mensagem do cliente, um bloco de código Enviar isso para um servidor remoto para ter suas novas linhas removidas seria um comércio de privacidade absurdo para uma operação tão trivial Como o trabalho é local, também não há limite de upload, então um documento muito grande reflui tão rápido quanto um curto, e a ferramenta continua funcionando mesmo que sua conexão caia após a página ter carregado Se você quiser o argumento mais longo sobre por que o processamento do lado do cliente é o padrão certo para utilitários como este, EU escrevi no guia de privacidade de dados e ferramentas online.
Como isso é diferente de encontrar e substituir?
Você pode, é claro, fazer isso sozinho em qualquer editor com localizar e substituir, e para um one-off está bem A razão pela qual EU ainda alcancei a ferramenta dedicada se resume às três coisas que um manual encontrar e substituir erra.
Primeiro, o problema do parágrafo Uma simples substituição de newline por espaço achata tudo em uma linha, porque não pode dizer uma quebra no parágrafo de um limite de parágrafo Para preservar parágrafos à mão você tem que fazer uma dança de dois passos: primeiro substitua a nova linha dupla por um espaço reservado, depois substitua novas linhas simples por espaços, depois coloque as novas linhas duplas de volta Isso é complicado e fácil de errar.
Segundo, as terminações de linha mista Se o seu texto tem uma mistura de CRLF, LF e CR, um único padrão de encontrar e substituir perde alguns deles, e você fica procurando os retardatários A ferramenta normaliza todos os três na frente.
Terceiro, a limpeza de espaços em branco Depois de juntar, você geralmente quer colapsar os espaços duplos e aparar as extremidades, que é mais uma ou duas passagens de substituição feitas na ordem certa A ferramenta dobra tudo isso em uma única operação com alternâncias visíveis, para que você possa ver exatamente o que cada um faz e ajustar sem refazer a coisa toda.
Nada disso é impossível à mão É apenas lento e propenso a erros o suficiente para que uma ferramenta construída especificamente pague por si mesma na segunda ou terceira vez que você precisar dela A mesma lógica é por que EU mantenho uma prateleira inteira de pequenos utilitários de texto, como o removedor de linha duplicado para deduzir uma lista e o classificador linha para encomendar um, em vez de buscar um script de rascunho a cada vez.
Quando EU iria querer remover todas as quebras de linha?
Existem casos genuínos para colapsar tudo em uma única linha, e vale a pena gritar para que você saiba quando desativar a opção de parágrafo.
O mais claro é a reformulação de dados Você copia uma única coluna de uma planilha e ela chega como um valor por linha Você quer que ela seja uma lista separada por vírgulas para cair em um SQL IN (...) cláusula ou uma matriz de configuração Desligue keep-paragraph-breaks, escolha o separador de vírgulas e você terá sua linha O mesmo se aplica à construção de uma linha de tabela Markdown com o separador de tubos ou à montagem de uma string de consulta.
Outra é voltar a juntar-se a um token que foi embrulhado Um URL longo, um blob base64 ou uma chave de API que foi dividida através de linhas em um e-mail precisa se tornar uma string contínua sem separador Desligue quebras de parágrafo, não escolha nada como separador e os fragmentos se fundem novamente em um único token.
A regra prática é simples Se você estiver limpando prosa para um humano ler, mantenha os parágrafos ligados Se você estiver remodelando o texto em um único valor legível por máquina, desligue-os Ser capaz de alternar entre os dois na mesma entrada, observando a atualização do resultado conforme você avança, é a razão pela qual EU construí ambos os comportamentos em uma ferramenta em vez de duas E se o texto limpo estiver indo para algum lugar você continuará editando, o kit mais amplo no site, do conversor case ao contador palavras, continua de onde este sai Para o conjunto mais amplo de ajudantes diários de texto e código, o Guia de ferramentas de produtividade do desenvolvedor é um bom mapa e o Guia de ferramentas de codificação cobre o lado da formatação.
Perguntas frequentes
Como removo quebras de linha do texto?
Cole seu texto na ferramenta remover quebras de linha e mantenha as configurações padrão Ele substitui cada quebra de linha dentro de um parágrafo por um único espaço e mostra o resultado unido instantaneamente, que você pode então copiar A coisa toda acontece no seu navegador.
Como mantenho meus parágrafos ao remover quebras de linha?
Deixe a opção manter-parágrafo-quebra, que é o padrão A ferramenta então apenas achata a única linha quebra dentro de cada parágrafo e mantém uma linha em branco entre os parágrafos, de modo que a estrutura do texto é preservada em vez de colapsar em uma linha.
Posso juntar todas as linhas em uma única linha?
Sim. Desligue a opção manter-parágrafo-quebra e toda a entrada será recolhida em uma linha contínua, o que é útil para transformar uma coluna de valores em uma única linha separada por vírgulas ou retornar a um token que foi dividido entre linhas.
Qual é a diferença entre uma quebra de linha e um retorno de carro?
Uma quebra de linha é o caractere de nova linha usado no Unix e nos sistemas Mac modernos. Um retorno de carro é o final mais antigo do Mac, e o Windows usa ambos juntos como CRLF. A ferramenta normaliza todos os três, portanto, qualquer texto de origem se junta da mesma maneira, independentemente de de onde veio.
Como substituo as quebras de linha por uma vírgula em vez de um espaço?
Escolha o separador de vírgulas Cada quebra de linha removida é substituída por uma vírgula e um espaço, o que transforma uma lista de linhas em uma lista separada por vírgulas Uma opção personalizada permite usar qualquer marceneiro desejado, como uma guia ou um traço.
Por que a saída ainda tem espaços duplos?
Isso acontece quando as linhas já terminavam em espaços antes de serem unidas Ligue a opção de colapso-espaços para reduzir qualquer execução de espaços ou guias para um único espaço, e ligue o acabamento para remover os espaços nas extremidades das linhas primeiro Ambos estão ligados por padrão.
A remoção de quebras de linha altera as palavras do meu texto?
Não. A ferramenta remove apenas os caracteres da nova linha e, se você perguntar, arruma os espaços em branco As palavras, a pontuação e sua ordem são deixadas exatamente como estavam, portanto o significado do texto permanece inalterado.
É seguro colar texto privado aqui?
Sim. todo o processamento acontece inteiramente no seu navegador com JavaScript Seu texto nunca é carregado ou armazenado, e a ferramenta continua trabalhando sem conexão de rede depois que a página é carregada, o que a torna segura para contratos, e-mails e código.



