Breno, dá p/ diminuir bem só no END...<br><br>
perl -ne 'push@a,$_ unless$v{$_}++;END{print sort@a}' lista.txt<br><br>unless é muito grande...<br><br>perl -ne 'push@a,$_ if!$v{$_}++;END{print sort@a}' lista.txt<br><br>dá p/ tirar o END...<br><br>perl -ne 'push@a,$_ if!$v{$_}++}{print sort@a' lista.txt<br>
<br>acho q já diminuiu bastante... mas acho q o melhor seria usar hash... mas a mila já roubou a minha solução!<br><br><div><span class="gmail_quote">Em 04/03/08, <b class="gmail_sendername">breno</b> <<a href="mailto:breno@rio.pm.org">breno@rio.pm.org</a>> escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Salve, pessoal! (Não, sério, salvem sempre... acabei de perder vários<br> arquivos aqui)<br> <br> Hoje vieram falar comigo com um código Perl de 11 linhas que recebe um<br> arquivo no seguinte formato:<br> <br> -------------8<-----------------<br>
palavra1<br> palavra2<br> palavra3<br> ....<br> -------------8<-----------------<br> <br> e retorna uma lista com todas as palavras ORDENADAMENTE e SEM REPETIÇÕES.<br> <br> Daí pensei cá com meus botões... dá pra fazer em 1 linha... e eis que<br>
saiu minha tacada:<br> <br> <br> perl -ne 'push@a,$_ unless$v{$_}++;END{@a=sort@a;print@a}' lista.txt<br> lista2.txt ...<br> <br> <br> 47 caracteres. Mas como não sou um praticante ávido de Golfe (salve<br> salve mestre Fernando), tenho certeza que dá pra fazer em menos. Notem<br>
que desse jeito, ao contrário do código inicial, é possível passar<br> quantos arquivos de lista de palavras tiverem, e ele vai ordenar e<br> remover duplicadas como se tudo fosse um único arquivão.<br> <br> Quem se habilita ao desafio?<br>
<br> Dica: acho que trabalhando com concatenação de strings (ao invés de<br> push em lista) fica bem menor...<br> <br> <br> []s<br> <br> -b<br> _______________________________________________<br> Rio-pm mailing list<br> <a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm">http://mail.pm.org/mailman/listinfo/rio-pm</a><br> </blockquote></div><br><br clear="all"><br>-- <br>[]'s Fernando