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: Marcelo Salhab Brogliato
Subject: Re: [shell-script] Comando para eliminar duplicatas não sequenciais
Date: Thu, 12 Nov 2009 11:49:49 -0200

Excepcional!

abraços,
Salhab


2009/11/12 Tiago Peczenyj <address@hidden>

> Muito pertinente essa duvida: existem varias formas de conseguir o que vc
> quer sem apelar para algoritmos iterativos, loops, etc, apenas com bash
> 'puro' e pipes - e alguma criatividade.
>
> O que vc quer ja existe no funçõesZZ [ http://funcoeszz.net/ ] do Aurelio
> &
> Thobias sob o nome de zzuniq e vou disponibilizar o codigo tal qual vc
> encontra no site
>
>    # As linhas do arquivo são numeradas para guardar a ordem original
>    cat -n "${1:--}" |     # Numera as linhas do arquivo
>        sort -k2 -u |  # Ordena e remove duplos, ignorando a numeração
>        sort -n |      # Restaura a ordem original
>        cut -f2-       # Remove a numeração
>
>
> o ${1:--} é para ler tanto da stdin quanto de um arquivo.
>
> No mesmo fonte vc encontra este comentario:
>
>    # Versão SED, mais lenta para arquivos grandes, mas só precisa do SED
>    # PATT: LINHA ATUAL \n LINHA-1 \n LINHA-2 \n ... \n LINHA #1 \n
>    # sed "G ; /^\([^\n]*\)\n\([^\n]*\n\)*\1\n/d ; h ; s/\n.*//" $1
>
> Boa sorte com o debug :)
>
> 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.
> >
> >
> >
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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