Removendo linhas duplicadas não-consecutivas

Publicado por Sandro Marcell em 20/10/2009

[ Hits: 16.665 ]

Blog: http://sanmarcell.wordpress.com

 


Removendo linhas duplicadas não-consecutivas



Geralmente utilizo o comando sort para remover linhas duplicadas de um arquivo:

sort -o output -u input

O problema era que em alguns casos as linhas não poderiam ser ordenadas, mas o sort (obviamente!) as ordenava. Então acabei resolvendo o meu problema assim:

perl -ne '$i{"$_"}++ || print' < input > output

O mesmo pode ser obtido via awk:

awk '!i[$0]++' < input > output

Ou:

awk '!($0 in i) {i[$0] ; print}' < input > output

Sendo "input" o arquivo de entrada e "output" o de saída.

Falou! ;)

Outras dicas deste autor

Overclock em placas de vídeo NVIDIA

Utilizando abreviações no Vim

Renomeando arquivos simultaneamente com apenas uma linha de comando

js-bwm: monitorando seu link de internet em tempo real

Vim: fechamento automático de pares de caracteres

Leitura recomendada

Como instalar programas .tar.gz

Gerando senhas aleatórias alfanuméricas

Guia de bolso com os principais comandos Linux

Ícones com cadeado no Linux

Criando uma árvore de diretórios com o mkdir

  

Comentários
[1] Comentário enviado por ferrarezux em 29/10/2012 - 12:37h

Valeu cara! Me ajudou demais aqui.



Contribuir com comentário