Descrição Overview Descripción
Linhas vazias são o lixo invisível dos arquivos de texto. Elas não aparecem na tela como um problema, não têm conteúdo útil, mas ocupam espaço, afetam contagens de linha e viram ruído em diffs de código e comparações de arquivos. O problema é que o conceito de vazia não é universalmente aceito: uma linha literalmente sem nenhum caractere antes da quebra de linha é vazia por qualquer critério; mas uma linha com apenas espaços e tabs não contém nada visível e costuma ser igualmente indesejada.
A origem mais comum de linhas extras é a colagem de conteúdo de múltiplas fontes. Um parágrafo copiado de um site, uma lista colada de uma planilha, um trecho de log extraído de um terminal — cada fonte tem sua própria convenção de espaçamento vertical. O resultado é um texto cheio de buracos irregulares que tornam a leitura e o processamento mais difíceis do que deveriam ser.
Em processamento de texto no terminal, ferramentas como sed e awk têm comandos clássicos para isso que existem há décadas — porque o problema existe há décadas. Em Python, um simples list comprehension com .strip() resolve em uma linha. Esses padrões continuam relevantes toda vez que alguém copia e cola texto de fontes diferentes.
Empty lines are the invisible garbage of text files. They do not show as problems on screen, they carry no useful content, but they consume space, skew line counts, and become noise in code diffs and file comparisons. The problem is that the concept of empty is not universally agreed upon: a line with literally no characters before the line break is empty by any standard; but a line containing only spaces and tabs has no visible content and is usually equally unwanted.
The most common source of extra blank lines is pasting content from multiple origins. A paragraph copied from a website, a list pasted from a spreadsheet, a log excerpt pulled from a terminal — each source has its own convention for vertical spacing. The result is a text full of irregular gaps that make reading and processing harder than they need to be.
In command-line text processing, tools like sed and awk have had classic commands for this for decades — because the problem has existed for decades. In Python, a simple list comprehension with .strip() handles it in one expression. These patterns remain relevant every time someone pastes text from different sources.
Las líneas vacías son la basura invisible de los archivos de texto. No aparecen como problemas en pantalla, no tienen contenido útil, pero ocupan espacio, distorsionan el recuento de líneas y se convierten en ruido en los diffs de código y las comparaciones de archivos. El problema es que el concepto de vacía no es universalmente acordado: una línea sin ningún carácter antes del salto de línea es vacía según cualquier criterio; pero una línea que contiene solo espacios y tabulaciones no tiene contenido visible y generalmente también es indeseable.
La fuente más común de líneas en blanco adicionales es pegar contenido de múltiples orígenes. Un párrafo copiado de un sitio web, una lista pegada desde una hoja de cálculo, un fragmento de log extraído de una terminal: cada fuente tiene su propia convención de espaciado vertical. El resultado es un texto lleno de huecos irregulares que dificultan la lectura y el procesamiento más de lo necesario.
En el procesamiento de texto por línea de comandos, herramientas como sed y awk llevan décadas con comandos clásicos para esto, porque el problema lleva décadas existiendo. En Python, una simple comprensión de lista con .strip() lo resuelve en una sola expresión. Estos patrones siguen siendo relevantes cada vez que alguien pega texto de distintas fuentes.
Detalhamento técnico
O que conta como linha vazia
- Linha completamente vazia: a sequência de fim de linha (LF, CRLF ou CR) aparece imediatamente após outro fim de linha. Não há absolutamente nenhum caractere entre as duas quebras.
- Linha só com espaços em branco: contém um ou mais espaços, tabs ou outros caracteres de espaçamento, mas nenhum caractere visível. Visualmente indistinguível de uma linha vazia na maioria dos editores.
- A opção de ignorar apenas espaços remove linhas que contenham somente espaços Unicode (incluindo espaço não-quebrável, U+00A0), mas preserva linhas com qualquer caractere visível.
- Fim de arquivo sem quebra de linha: alguns editores adicionam uma linha vazia implícita no final do arquivo. Isso é diferente de uma linha vazia real e normalmente não deve ser removido.
Casos de uso frequentes
- Limpar texto copiado de PDFs, que frequentemente introduz linhas em branco entre parágrafos durante a extração.
- Normalizar arquivos de configuração INI, TOML ou properties que acumularam linhas em branco ao longo de edições manuais.
- Preparar listas de palavras-chave ou tags para processamento automatizado, removendo entradas vazias que causariam elementos nulos na divisão por linha.
- Reduzir o tamanho de arquivos de log antes de enviá-los por e-mail ou fazer upload em tickets de suporte.
- Eliminar quebras duplas de parágrafo em markdown antes de converter para HTML, quando o destino não usa espaçamento extra.
Technical deep dive
What counts as an empty line
- Completely empty line: the end-of-line sequence (LF, CRLF, or CR) appears immediately after another end-of-line. There is absolutely no character between the two breaks.
- Whitespace-only line: contains one or more spaces, tabs, or other spacing characters, but no visible character. Visually indistinguishable from an empty line in most editors.
- The option to strip whitespace-only lines removes lines containing only Unicode space characters (including non-breaking space, U+00A0), but preserves lines with any visible character.
- End-of-file without a trailing newline: some editors add an implicit empty line at the end of a file. This is different from a real blank line and should generally not be removed.
Frequent use cases
- Cleaning text copied from PDFs, which frequently introduces blank lines between paragraphs during extraction.
- Normalizing INI, TOML, or properties config files that have accumulated blank lines through manual edits.
- Preparing keyword or tag lists for automated processing, removing empty entries that would produce null elements when splitting by line.
- Reducing log file size before emailing them or uploading to support tickets.
- Eliminating double paragraph breaks in Markdown before converting to HTML, when the target format does not use extra spacing.
Detalle técnico
Qué cuenta como línea vacía
- Línea completamente vacía: la secuencia de fin de línea (LF, CRLF o CR) aparece inmediatamente después de otra. No hay absolutamente ningún carácter entre los dos saltos.
- Línea solo con espacios en blanco: contiene uno o más espacios, tabulaciones u otros caracteres de espaciado, pero ningún carácter visible. Visualmente indistinguible de una línea vacía en la mayoría de los editores.
- La opción de eliminar también las líneas con solo espacios quita las que contienen únicamente caracteres de espacio Unicode (incluido el espacio de no separación, U+00A0), pero conserva las líneas con cualquier carácter visible.
- Fin de archivo sin salto de línea final: algunos editores añaden una línea vacía implícita al final del archivo. Esto es distinto de una línea en blanco real y normalmente no debería eliminarse.
Casos de uso frecuentes
- Limpiar texto copiado de PDFs, que frecuentemente introduce líneas en blanco entre párrafos durante la extracción.
- Normalizar archivos de configuración INI, TOML o properties que han acumulado líneas en blanco tras ediciones manuales.
- Preparar listas de palabras clave o etiquetas para procesamiento automatizado, eliminando entradas vacías que producirían elementos nulos al dividir por línea.
- Reducir el tamaño de archivos de log antes de enviarlos por correo o subirlos a tickets de soporte.
- Eliminar los dobles saltos de párrafo en Markdown antes de convertir a HTML, cuando el formato destino no usa espaciado extra.
Guia da ferramenta Tool guide Guía de la herramienta
-
O objeto tratado Texto multilinha.
-
O que a ferramenta faz Remove linhas completamente vazias e, opcionalmente, linhas que só contêm espaços ou tabs.
-
Por que usar Compactar logs, poemas, CSV colados ou qualquer bloco onde linhas em branco atrapalham processamento ou leitura.
-
What you are working with Multi-line text.
-
What the tool does Removes completely empty lines and, optionally, lines that contain only spaces or tabs.
-
Why use it Tighten logs, poetry, pasted CSV, or any block where blank lines hurt processing or reading.
-
Con qué trabajas Texto multilínea.
-
Qué hace la herramienta Elimina líneas completamente vacías y, opcionalmente, líneas que solo tienen espacios o tabuladores.
-
Por qué usarla Compactar logs, poemas, CSV pegado o cualquier bloque donde las líneas en blanco estorben al procesar o leer.
Exemplo de Código Code Snippets Fragmentos de Código
// Remove linhas completamente vazias
const resultado = text
.split('\n')
.filter(line => line.length > 0)
.join('\n');
// Remove também linhas só com espaços
const resultadoTrim = text
.split('\n')
.filter(line => line.trim().length > 0)
.join('\n');
// Linha vazia (só \n\n)
const s1 = text.replace(/^\n/gm, '').replace(/\n{2,}/g, '\n');
// Linha vazia ou só com espaços
const s2 = text.split('\n').filter(l => l.trim()).join('\n');
// Remove completely empty lines
const result = text
.split('\n')
.filter(line => line.length > 0)
.join('\n');
// Also removes whitespace-only lines
const resultTrim = text
.split('\n')
.filter(line => line.trim().length > 0)
.join('\n');
# Remove empty lines
result = '\n'.join(line for line in text.splitlines() if line)
# Remove whitespace-only lines too
result = '\n'.join(line for line in text.splitlines() if line.strip())
// Elimina líneas completamente vacías
const resultado = text
.split('\n')
.filter(line => line.length > 0)
.join('\n');
// Elimina también las líneas con solo espacios
const resultadoTrim = text
.split('\n')
.filter(line => line.trim().length > 0)
.join('\n');
# Eliminar líneas vacías
resultado = '\n'.join(linea for linea in texto.splitlines() if linea)
# Eliminar también líneas con solo espacios
resultado = '\n'.join(linea for linea in texto.splitlines() if linea.strip())
Antes Before Antes
a
b → a
b (com opção de ignorar só espaços)
Perguntas frequentes FAQ Preguntas frecuentes
Para que serve esta ferramenta?
What is this tool for?
¿Para qué sirve esta herramienta?
Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.
It runs fully in your browser: useful to validate, format, or convert data in everyday development.
Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.
Meus dados são enviados a algum servidor?
Are my inputs sent to a server?
¿Se envían mis datos a algún servidor?
O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.
Processing happens locally with JavaScript. We do not store what you paste into the text areas.
El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.
Posso usar em produção ou para dados reais?
Can I use this for real production data?
¿Puedo usarlo con datos reales en producción?
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.
Use at your own risk. For secrets (passwords, tokens), prefer controlled environments and your company policies. And always review the generated contents. Never trust blindly things you see on the internet.
Ú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.