Removedor de Linhas Duplicadas

Remover linhas duplicadas do texto, mantendo apenas linhas únicas

Experimente um exemplo

Linhas de entrada

Linhas únicas

Roda localmente · Seguro para colar segredos
As linhas únicas aparecerão aqui…

O Que É Remoção de Linhas Duplicadas?

Remoção de linhas duplicadas é o processo de percorrer um bloco de texto linha a linha e manter apenas a primeira ocorrência de cada linha única. Ao remover linhas duplicadas online, a ferramenta divide o texto nos caracteres de nova linha, rastreia quais linhas já apareceram usando uma estrutura de dados baseada em hash (como um Set) e produz apenas as linhas que ainda não foram vistas. A ordem original das linhas é preservada.

Duas linhas são consideradas duplicatas quando correspondem exatamente, caractere por caractere. No entanto, dados do mundo real raramente cooperam com a correspondência exata. Espaços em branco no início ou no final, capitalização inconsistente e caracteres invisíveis como tabulações ou retornos de carro podem fazer com que linhas visualmente idênticas sejam tratadas como únicas. É por isso que a maioria das ferramentas de deduplicação oferece opções para comparação sem distinção entre maiúsculas e minúsculas e remoção de espaços em branco antes da comparação.

Deduplicação é uma operação distinta da ordenação. O comando Unix sort -u ordena e deduplica ao mesmo tempo, alterando a ordem das linhas. Se você precisar preservar a ordem original das linhas, é necessário usar a abordagem de seen-set: iterar pelas linhas sequencialmente, adicionar a forma normalizada de cada linha a um conjunto e ignorar qualquer linha cuja chave já exista. Esta ferramenta usa o método seen-set, portanto as primeiras ocorrências permanecem em suas posições originais.

Por Que Usar Este Removedor de Duplicatas?

Cole seu texto, escolha as opções de comparação e veja o resultado deduplicado imediatamente. Sem configuração de linha de comando, sem escrita de regex, sem upload de arquivos.

Deduplicação Instantânea
Os resultados são atualizados enquanto você digita ou cola. Alterne a sensibilidade a maiúsculas e a remoção de espaços em branco para ver como diferentes opções afetam a saída sem precisar executar nada novamente.
🔒
Processamento com Privacidade em Primeiro Lugar
Toda a deduplicação é executada no seu navegador usando JavaScript. Seu texto permanece no seu dispositivo e nunca é enviado a um servidor ou registrado em lugar algum.
🎯
Correspondência Configurável
Ative o modo sem distinção entre maiúsculas e minúsculas para tratar "Maçã" e "maçã" como a mesma linha. Ative a remoção de espaços em branco para ignorar espaços no início e no final durante a comparação.
📋
Sem Cadastro Necessário
Abra a página e comece a deduplicar. Sem cadastro, sem extensão de navegador, sem instalação em desktop. Funciona em qualquer dispositivo com um navegador moderno.

Casos de Uso do Removedor de Linhas Duplicadas

Desenvolvimento Frontend
Limpe listas de classes CSS, remova declarações de import repetidas ou deduplique chaves de tradução i18n. Remover duplicatas antes de commitar evita bundles inchados e reduz conflitos de merge.
Engenharia Backend
Deduplique entradas em requirements.txt, Gemfile ou listas de dependências do package.json após mesclar branches. Remova entradas repetidas de allow-lists, deny-lists ou tabelas de roteamento.
DevOps e Infraestrutura
Limpe entradas duplicadas de arquivos .env, listas de hosts ou ConfigMaps do Kubernetes. Variáveis de ambiente duplicadas causam substituições silenciosas, portanto identificá-las antes do deploy evita bugs de configuração difíceis de rastrear.
QA e Automação de Testes
Remova IDs de casos de teste repetidos de manifestos de execução ou asserções duplicadas em suites de teste geradas. Deduplique mensagens de erro da saída de log para ver o conjunto único de falhas.
Engenharia de Dados
Elimine linhas duplicadas de exportações CSV ou resultados de consultas SQL colados como texto. Limpe listas de e-mail, listas de IDs de usuários ou listas de tags antes de importá-las para um banco de dados ou pipeline.
Estudantes e Aprendizes
Remova entradas repetidas de listas de vocabulário, referências bibliográficas ou anotações de estudo. Cole conteúdo de várias fontes e obtenha uma lista limpa e única sem precisar instalar um aplicativo de planilhas.

Métodos de Deduplicação Comparados

Existem várias abordagens para remover linhas duplicadas, cada uma com diferentes compromissos em termos de preservação de ordem, uso de memória e precisão.

MétodoComo FuncionaOrdem de SaídaOnde É Usado
SetHash-based, O(1) lookupUnorderedJavaScript Set, Python set()
Sorted + scanSort then skip adjacentSorted outputUnix sort -u, C++ std::unique
Seen-set + listTrack seen, preserve orderOriginal orderThis tool, Python dict.fromkeys()
Bloom filterProbabilistic membershipMay miss someLarge-scale pipelines, Redis
SQL DISTINCTDatabase-level dedupQuery-dependentSELECT DISTINCT col FROM table

Sensibilidade a Maiúsculas e Tratamento de Espaços em Branco

Duas opções controlam como esta ferramenta decide se duas linhas são duplicatas. Entender quando usar cada opção evita tanto falsos positivos (tratar linhas diferentes como duplicatas) quanto falsos negativos (ignorar linhas que deveriam corresponder).

Sensível a Maiúsculas (padrão: ativado)
Quando ativado, "Maçã" e "maçã" são tratadas como linhas diferentes. Desative esta opção ao deduplicar dados enviados por usuários, listas de nomes de domínio ou qualquer texto onde a capitalização é inconsistente mas o significado é o mesmo.
Remover Espaços em Branco (padrão: ativado)
Quando ativado, espaços e tabulações no início e no final são removidos antes da comparação. Isso captura linhas que parecem idênticas mas diferem por caracteres invisíveis, comuns em saídas de terminal copiadas, arquivos de configuração indentados e artefatos de editor.

Exemplos de Código

Remova linhas duplicadas programaticamente em JavaScript, Python, Go e na linha de comando. Cada exemplo demonstra deduplicação com preservação de ordem e trata a sensibilidade a maiúsculas.

JavaScript
const text = `apple
banana
apple
Cherry
banana
cherry`

// Remove exact duplicates, preserve order
const unique = [...new Map(
  text.split('\n').map(line => [line, line])
).values()].join('\n')
// → "apple\nbanana\nCherry\ncherry"

// Case-insensitive deduplication
const seen = new Set()
const ciUnique = text.split('\n').filter(line => {
  const key = line.toLowerCase()
  if (seen.has(key)) return false
  seen.add(key)
  return true
}).join('\n')
// → "apple\nbanana\nCherry"

// Trim whitespace before comparing
const trimDedup = text.split('\n').filter(line => {
  const key = line.trim().toLowerCase()
  if (seen.has(key)) return false
  seen.add(key)
  return true
}).join('\n')
Python
text = """apple
banana
apple
Cherry
banana
cherry"""

lines = text.splitlines()

# Remove duplicates, preserve order (Python 3.7+)
unique = list(dict.fromkeys(lines))
# → ['apple', 'banana', 'Cherry', 'cherry']

# Case-insensitive deduplication
seen = set()
ci_unique = []
for line in lines:
    key = line.lower()
    if key not in seen:
        seen.add(key)
        ci_unique.append(line)
# → ['apple', 'banana', 'Cherry']

# With whitespace trimming
seen = set()
trimmed = []
for line in lines:
    key = line.strip().lower()
    if key not in seen:
        seen.add(key)
        trimmed.append(line)
Go
package main

import (
	"fmt"
	"strings"
)

func removeDuplicates(text string) string {
	lines := strings.Split(text, "\n")
	seen := make(map[string]bool)
	result := make([]string, 0, len(lines))

	for _, line := range lines {
		if !seen[line] {
			seen[line] = true
			result = append(result, line)
		}
	}
	return strings.Join(result, "\n")
}

func main() {
	text := "apple\nbanana\napple\ncherry\nbanana"
	fmt.Println(removeDuplicates(text))
	// → apple\nbanana\ncherry
}
CLI (bash)
# Remove duplicates (sorts output — does not preserve order)
sort -u file.txt

# Remove duplicates while preserving original order
awk '!seen[$0]++' file.txt

# Case-insensitive dedup, preserve order
awk 'BEGIN{IGNORECASE=1} !seen[tolower($0)]++' file.txt

# Trim whitespace then dedup
sed 's/^[[:space:]]*//;s/[[:space:]]*$//' file.txt | awk '!seen[$0]++'

# Count duplicates before removing
sort file.txt | uniq -c | sort -rn

Perguntas Frequentes

Qual é a diferença entre remover duplicatas e usar sort -u?
O comando sort -u primeiro ordena todas as linhas alfabeticamente e depois remove as duplicatas adjacentes. Isso altera a ordem original das linhas. A abordagem seen-set, que esta ferramenta utiliza, itera pelas linhas em ordem e ignora qualquer linha que já tenha aparecido, preservando a sequência original. Use sort -u quando quiser uma saída tanto ordenada quanto única. Use a abordagem seen-set quando a ordem importa.
Meu texto é enviado a um servidor ao remover duplicatas?
Não. Todo o processamento acontece no seu navegador usando JavaScript. O texto nunca sai do seu dispositivo. Você pode verificar isso abrindo a aba Rede no DevTools do navegador e confirmando que nenhuma requisição é feita ao colar texto e alternar opções.
Quantas linhas esta ferramenta consegue processar?
A ferramenta funciona bem com dezenas de milhares de linhas. O Set do JavaScript tem tempo de busca médio O(1), portanto deduplicar 100.000 linhas leva menos de 100 milissegundos em hardware moderno. Para arquivos maiores que alguns megabytes, use o one-liner awk '!seen[$0]++' na linha de comando, que percorre o arquivo em fluxo sem carregá-lo inteiramente na memória.
Como funciona a deduplicação sem distinção entre maiúsculas e minúsculas?
Quando a sensibilidade a maiúsculas está desativada, cada linha é convertida para minúsculas antes de ser verificada no conjunto de linhas já vistas. A versão com a capitalização original da primeira ocorrência é mantida na saída. Portanto, se a entrada tiver "Maçã" na linha 1 e "maçã" na linha 5, "Maçã" é mantida e "maçã" é removida.
Posso remover duplicatas e ordenar ao mesmo tempo?
Esta ferramenta remove duplicatas sem alterar a ordem das linhas. Para obter uma saída ordenada e única, use primeiro a ferramenta Ordenador de Linhas na mesma categoria para ordenar o texto e, em seguida, cole o resultado ordenado aqui para remover quaisquer duplicatas restantes. Como alternativa, use sort -u na linha de comando para uma solução em uma única etapa.
O que acontece com linhas vazias e linhas com apenas espaços em branco?
Linhas vazias são tratadas como qualquer outra linha. Se o texto tiver três linhas vazias, apenas a primeira é mantida. Quando a remoção de espaços em branco está ativada, linhas que contêm apenas espaços ou tabulações são normalizadas para strings vazias antes da comparação, portanto todas são tratadas como duplicatas da primeira linha vazia ou com apenas espaços.
Como removo duplicatas de um arquivo CSV por uma coluna específica?
Esta ferramenta compara linhas inteiras, não colunas individuais. Para deduplicar um CSV por uma coluna específica, use awk com um separador de campo: awk -F',' '!seen[$2]++' arquivo.csv remove linhas com valores duplicados na segunda coluna. Em Python, use pandas: df.drop_duplicates(subset=['nome_da_coluna']). Para dados SQL, use SELECT DISTINCT ou GROUP BY na coluna alvo.