Removendo linhas duplicadas não-consecutivas

Publicado por Sandro Marcell em 20/10/2009

[ Hits: 16.730 ]

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

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

CAT - Descobrindo informações sobre sua distribuição

Declarando constantes em shell scripts

Detectando conflitos de IP

Vim: Autocompletar com TAB

Leitura recomendada

Listando arquivos que contém determinado padrão recursivamente dentro de um diretório

Configurando ou consertando sudo gráfico no KDE

Como instalar um pacote do Linux From Scratch

Backup em fita DAT

Sabayon e Gentoo - Atualizar Portage em um único comando

  

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

Valeu cara! Me ajudou demais aqui.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts