Cole a lista em um removedor de duplicatas, rode sort -u list.txt em um terminal, ou selecione a coluna no Excel e use Dados → Remover Duplicatas. Qualquer um dos três termina em segundos. O que custa a sua tarde é aquele par de linhas que parecem idênticas e se recusam a virar uma só, e a pergunta que nenhuma dessas ferramentas faz em voz alta: quando uma linha se repete, qual cópia deve sobreviver?
Qual é o jeito mais rápido de remover duplicatas de uma lista?
Para qualquer coisa que você consiga percorrer com os olhos — alguns milhares de endereços de e-mail, uma coluna de SKUs, um monte de URLs vindas de um crawl — uma ferramenta de navegador é o caminho mais curto, porque você consegue olhar o resultado antes de se comprometer com ele. Colar a lista em um removedor de linhas duplicadas devolve cada linha distinta uma única vez, na ordem em que cada uma apareceu pela primeira vez, e diz quantas repetições foram descartadas. Nada é enviado: é JavaScript rodando na sua aba, o que importa quando a lista é uma carteira de clientes ou um conjunto de URLs internas.
Seja qual for a ferramenta, verifique se ela preserva a ordem. Ordenar é o jeito mais barato de encontrar duplicatas, então várias das respostas padrão — sort -u, o Sort-Object -Unique do PowerShell — reordenam a lista como efeito colateral. Se a sua estava em uma ordem que fazia sentido, prioridade ou cronologia ou a ordem em que um script a escreveu, isso se perdeu e você não consegue recuperar a ordem a partir da saída.
Qual cópia deve sobreviver?
Se as duplicatas são idênticas byte a byte, não faz a menor diferença. No momento em que a sua regra de comparação fica frouxa — ignorar maiúsculas e minúsculas, ignorar os espaços ao redor — as cópias realmente diferem e você está escolhendo entre grafias.
- Fique com a primeira em qualquer coisa que só cresce: um log, uma lista de inscrições, uma fila. A entrada mais antiga é a de verdade e tudo depois dela é reenvio.
- Fique com a última quando as entradas posteriores são correções. Exportações de CRM e de faturamento costumam funcionar assim: o mesmo registro aparece várias vezes e a última linha traz o telefone atual.
A maioria das ferramentas decide isso em silêncio. O Excel mantém a linha de cima de cada grupo e apaga o resto. Com sort -u a pergunta nunca aparece, porque duas linhas só contam como iguais quando são idênticas. Só vale a pena pensar nisso quando você pediu de propósito para a ferramenta ser tolerante com maiúsculas ou espaços.
Por que duas linhas aparentemente idênticas não se juntam
Essa é a reclamação dirigida a todo removedor de duplicatas já escrito, e quase nunca é culpa da ferramenta. Alguma coisa invisível é diferente.
- Espaços no fim. Um único espaço depois de uma palavra torna a linha única e é completamente invisível. É por isso que a maioria das ferramentas apara os espaços por padrão.
- Espaços não separáveis. Copiar de uma página web, do Word ou de um PDF frequentemente traz junto o U+00A0 no lugar de um espaço normal. Mesma forma, caractere diferente.
- Acentos decompostos. A letra é pode ser um único code point (U+00E9) ou um
esimples seguido de um acento agudo combinante (U+0301). As duas aparecem iguais na tela e são comparadas como strings diferentes. Os nomes de arquivo do macOS historicamente usam a forma decomposta, enquanto quase toda entrada feita na web usa a composta, então uma lista montada a partir das duas origens chega cheia de gêmeas. Normalizar para NFC junta as duas. - Retornos de carro. Um arquivo escrito no Windows termina as linhas com CR + LF. Misture com um arquivo feito no Unix e uma ferramenta ingênua vê um retorno de carro solto pendurado em metade das suas linhas.
A normalização não vai te salvar dos sósias. O а cirílico (U+0430) e o a latino (U+0061) são letras diferentes que por acaso têm a mesma forma; o mesmo vale para um apóstrofo curvo e um reto, e para as letras latinas de largura completa usadas em textos em japonês. Nenhuma forma de normalização junta essas, porque juntá-las seria errado. Essas você conserta no nível do caractere, com uma passada de localizar e substituir em toda a lista antes de remover qualquer duplicata. Se você não conseguir descobrir qual caractere é o culpado, o guia de caracteres invisíveis no texto lista os suspeitos de sempre e como identificá-los.
Na linha de comando, uniq é uma armadilha
O uniq só remove duplicatas adjacentes. Ele percorre o arquivo comparando cada linha com a anterior, então uma lista com repetições espalhadas sai completamente inalterada, sem erro e sem aviso. Tem gente que perde horas com isso.
sort -u list.txt— ordena e remove duplicatas em uma única passada. A ordem original se perde. Ele compara usando as regras de collation do seu locale; ponhaLC_ALL=Cna frente para uma comparação de bytes pura.awk '!seen[$0]++' list.txt— mantém a primeira ocorrência de cada linha e preserva a ordem original. Ele guarda cada linha distinta na memória, que é o preço de não ordenar.sort list.txt | uniq -d— lista apenas as linhas que apareceram mais de uma vez.uniq -ccoloca a contagem como prefixo de cada uma. Os dois precisam de entrada ordenada, pelo motivo acima.Get-Content list.txt | Sort-Object -Unique— o equivalente no PowerShell. Repare que por padrão ele não diferencia maiúsculas de minúsculas, ao contrário das ferramentas Unix; acrescente-CaseSensitivese isso importar.
No Excel e no Google Sheets
O Remover Duplicatas do Excel fica na aba Dados. Selecione o intervalo, marque as colunas a comparar, e ele apaga as linhas que sobram ali mesmo e informa quantas foram. Duas coisas para saber: linhas são duplicatas só se todas as colunas marcadas coincidirem, e a exclusão é destrutiva — desfazer é o único caminho de volta, então duplique a planilha antes se os dados não forem reproduzíveis.
O Google Sheets tem o mesmo comando destrutivo em Dados → Limpeza de dados → Remover duplicados, mas também tem =UNIQUE(A2:A), que escreve a lista sem duplicatas em uma coluna livre e deixa a original intacta. Esse é o melhor padrão: dá para comparar as duas lado a lado, e o resultado se atualiza quando a origem muda. Para contar em vez de remover, =COUNTIF(A:A, A2) arrastado para baixo diz quantas vezes cada valor aparece na coluna.
Encontrar as duplicatas em vez de apagá-las
Muitas vezes as repetições são justamente o ponto. Qual endereço se cadastrou duas vezes, qual número de nota fiscal foi emitido para dois clientes, qual ID de rastreamento caiu na exportação mais de uma vez: você não quer uma lista limpa, quer os infratores.
A ferramenta do navegador tem um modo exatamente para isso: mude Mostrar para “Só as linhas que se repetiram” e marque o prefixo de contagem, e você recebe cada linha repetida uma vez com o número de vezes que ela apareceu. O inverso — apenas as linhas que apareceram exatamente uma vez — é útil para conciliar duas listas que deveriam ter batido. Na linha de comando, sort file | uniq -d faz o primeiro trabalho e uniq -u o segundo.
Onde a remoção de duplicatas por linha deixa de funcionar
Uma ferramenta que trata cada linha como uma única string opaca é rápida, previsível e errada para vários trabalhos comuns.
- CSV com campos entre aspas. Um valor que contém uma quebra de linha é CSV válido e vai ser dividido em duas “linhas” por qualquer coisa que não interprete o formato. Remover duplicatas por uma coluna entre várias exige uma planilha ou um script que entenda registros.
- Quase duplicatas. “Acme Ltd.” e “Acme Limited” são a mesma empresa e nenhuma ferramenta de comparação exata vai juntá-las. Nem “john@example.com” e “John@Example.com ” com um espaço no fim, a não ser que você ligue o corte de espaços e a comparação sem diferenciar maiúsculas. Comparação aproximada é outro problema, com outra classe de ferramenta.
- Diferenças que você quer inspecionar em vez de remover. Se a pergunta real é o que mudou entre duas versões da mesma lista, remover duplicatas destrói a evidência. Comparar os dois textos linha a linha é a ferramenta para isso.
- Arquivos muito grandes. Uma aba do navegador dá conta de algumas centenas de milhares de linhas tranquilamente. Um log de vários milhões de linhas vai travá-la, e colar um arquivo de 200 MB em uma caixa de texto já é sofrido antes de você apertar qualquer coisa. É para isso que existe o
sort -u.
Um último hábito que vale cultivar: rode a remoção de duplicatas e depois olhe as contagens. “12.000 linhas na entrada, 11.998 distintas” geralmente significa que a sua lista já estava limpa e o problema é outro. “12.000 na entrada, 340 distintas” significa que a sua exportação rodou 35 vezes. Os números dizem mais sobre os dados do que a lista já limpa.
Se você tem uma lista aberta em outra janela, o removedor de linhas duplicadas resolve agora: aparar espaços e remover linhas em branco já vêm ligados, e as contagens embaixo mostram o que ele encontrou antes de você copiar qualquer coisa. Ligue a normalização Unicode se a lista veio de mais de uma origem.
A outra metade de arrumar uma lista é colocá-la em uma ordem sensata, e isso é menos óbvio do que parece quando entram números ou maiúsculas e minúsculas misturadas. Ordenar uma lista em ordem alfabética e numérica explica por que “item10” insiste em ficar antes de “item2”.
Perguntas frequentes
Como eu removo linhas duplicadas de um arquivo de texto?
Cole em um removedor de duplicatas do navegador para qualquer coisa até algumas centenas de milhares de linhas, ou rode sort -u file.txt em um terminal para arquivos maiores. Em uma planilha, selecione a coluna e use Dados e depois Remover Duplicatas. Os três mantêm uma cópia de cada linha distinta.
Como eu removo duplicatas mas mantenho a ordem original?
Use uma ferramenta que indexe as linhas em vez de ordená-las. Na linha de comando, awk '!seen[$0]++' file.txt mantém a primeira ocorrência de cada linha na posição original. O sort -u puro não consegue fazer isso, porque ordenar é justamente como ele encontra as duplicatas.
Por que as linhas duplicadas não estão sendo removidas?
Porque elas não são realmente idênticas. As causas de sempre são um espaço no fim, um espaço não separável colado de uma página web, um acento guardado na forma decomposta, ou um caractere parecido de outro alfabeto. Ligue primeiro o corte de espaços e a normalização Unicode; se as linhas ainda se recusarem a juntar, a diferença é um caractere que você não consegue ver e precisa localizar e substituir diretamente.
O uniq remove todas as linhas duplicadas?
Não. O uniq só compara cada linha com a imediatamente anterior, então duplicatas espalhadas pelo arquivo sobrevivem intactas. Ordene a entrada antes com sort file | uniq, ou use sort -u, que faz as duas coisas em uma única passada.
Como eu descubro quais linhas estão duplicadas em vez de apagá-las?
Mude a ferramenta do navegador para “Só as linhas que se repetiram” e marque o prefixo de contagem, que mostra cada linha repetida uma vez com quantas vezes ela apareceu. Na linha de comando, sort file | uniq -d lista as linhas repetidas e uniq -c coloca a contagem como prefixo de cada linha.
É seguro remover duplicatas de uma lista online?
Depende de o site enviar ou não o seu texto para um servidor. Muitos enviam, o que significa que uma lista de clientes ou uma exportação interna fica nos logs de outra pessoa. Uma ferramenta que roda no navegador nunca transmite o texto, e fechar a aba descarta o que você colou.
Última atualização 19 de setembro de 2026