[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
Re: [shell-script] Comando para eliminar duplicatas não sequenciais, Tiago Peczenyj, 2009/11/12