Removendo linhas duplicadas não-consecutivas

Publicado por Sandro Marcell em 20/10/2009

[ Hits: 13.398 ]

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

Habilitando correção ortográfica no Vim

Otimizando o Firefox para conexões banda larga

Ordenando strings em shell script

ifconfig + sed - Mostrando seu endereço IP

Shell - operações envolvendo números em ponto flutuante

Leitura recomendada

Visualizando processos com o htop

Detecção de Sistema Operacional com NMAP

O comando tree - listar diretórios em formato árvore

Ubuntu 12.04 LTS - Deixando sua máquina mais rápida

ffmpeg - Como aumentar ou reduzir o volume de um áudio ou video via linha de 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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts