shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Comando para eliminar duplicatas não sequenciais


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Comando para eliminar duplicatas não sequenciais
Date: Wed, 11 Nov 2009 20:08:53 -0200

2009/11/11 Marcio Gil <address@hidden>:
> Pessoal, quero saber se existe algum comando equivalente ao 'uniq'
> mas que possa eliminar duplicatas não sequenciais. Exemplo:
>
> ddeeff
> aabbcc
> aabbcc
> gghhii
> gghhii
> aabbcc
>
> com 'cat ... | uniq' fica:
>
> ddeeff
> aabbcc
> gghhii
> aabbcc
>
> com 'cat ... | sort -u' fica:
>
> aabbcc
> ddeeff
> gghhii
>
> Mas quero obter somente a primeira ocorrência de cada linha, na
> ordem em que elas ocorrem:
>
> ddeeff
> aabbcc
> gghhii
>
> Há muito tempo eu escrevi um código pra fazer isso ( que chamei de
> 'first': http://c.pastebin.com/f69cecb13 ), mas gostaria de saber se
> existe alguma maneira de resolver com shel-script padrão.
>
> Obrigado.
>
> Marcio Gil.

Uma idéia a ser melhorada:

TMP=$(mktemp /tmp/tmp.XXXXXX)
sort arquivo | uniq > $TMP
while [ $(wc -l < $TMP) -gt 0 ]; do
  linha=$(grep -m1 -f b arquivo)
  echo $linha
  sed -i "/$linha/d" $TMP
done
rm $TMP

Se ficar alguma dúvida, eu explico :)

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]