[Rio-pm] Golfe! lendo arquivos, ordenando entradas e removendo duplicadas

Marco A P D'Andrade mdacwb em gmail.com
Terça Março 4 11:07:17 PST 2008


Ah!

A Camila foi mais rapida no gatilho :D

Mas, como eu gosto de usar Perl onde ele é a melhor solução... nesta
dá para dar uns pontinhos pro Julio Neves ... ;)

sort -u

Sds,
Marco Antonio

Em 04/03/08, Marco A P D'Andrade<mdacwb em gmail.com> escreveu:
> 32 caracteres ;)
>
>  perl -ne '$v{$_}++;END{print sort keys%v}'
>
>  Pra que um array, se vc está controlando em hash ?
>
>
>  Em 04/03/08, breno<breno em rio.pm.org> escreveu:
>
> > perl -ne 'push em a,$_ unless$v{$_}++;END{print sort em a}'
>  >
>  >  42 caracteres :-)
>  >
>  >  Me ocorreu que a transição do sort era desnecessária assim que eu li
>  >  meu próprio post :-)
>  >
>  >  []s
>  >
>  >  -b
>  >
>  >
>  >
>  >  2008/3/4 breno <breno em rio.pm.org>:
>  >
>  > > Salve, pessoal! (Não, sério, salvem sempre... acabei de perder vários
>  >  >  arquivos aqui)
>  >  >
>  >  >  Hoje vieram falar comigo com um código Perl de 11 linhas que recebe um
>  >  >  arquivo no seguinte formato:
>  >  >
>  >  >  -------------8<-----------------
>  >  >  palavra1
>  >  >  palavra2
>  >  >  palavra3
>  >  >  ....
>  >  >  -------------8<-----------------
>  >  >
>  >  >  e retorna uma lista com todas as palavras ORDENADAMENTE e SEM REPETIÇÕES.
>  >  >
>  >  >  Daí pensei cá com meus botões... dá pra fazer em 1 linha... e eis que
>  >  >  saiu minha tacada:
>  >  >
>  >  >
>  >  >  perl -ne 'push em a,$_ unless$v{$_}++;END{@a=sort em a;print em a}' lista.txt
>  >  >  lista2.txt ...
>  >  >
>  >  >
>  >  >  47 caracteres. Mas como não sou um praticante ávido de Golfe (salve
>  >  >  salve mestre Fernando), tenho certeza que dá pra fazer em menos. Notem
>  >  >  que desse jeito, ao contrário do código inicial, é possível passar
>  >  >  quantos arquivos de lista de palavras tiverem, e ele vai ordenar e
>  >  >  remover duplicadas como se tudo fosse um único arquivão.
>  >  >
>  >  >  Quem se habilita ao desafio?
>  >  >
>  >  >  Dica: acho que trabalhando com concatenação de strings (ao invés de
>  >  >  push em lista) fica bem menor...
>  >  >
>  >  >
>  >  >  []s
>  >  >
>  >  >  -b
>  >  >
>  >  _______________________________________________
>  >  Rio-pm mailing list
>  >  Rio-pm em pm.org
>  >  http://mail.pm.org/mailman/listinfo/rio-pm
>  >
>


Mais detalhes sobre a lista de discussão Rio-pm