domingo, 24 de agosto de 2008

Viva o sort!

Como prometido, vou escrever sobre tecnologia. Estou fazendo uns experimentos (isso mesmo, o pessoal de Engenharia de Software também faz experimentos) e precisei eliminar as duplicações de linhas de um arquivo. Pois bem, minha primeira idéia foi: "Fácil demais!!! Leio o arquivo linha por linha e coloco num HashSet as mesmas."

Massa, pra isso eu precisei abrir o eclipse (quem programa no vim é pra se amostrar). Chegando lá, precisei criar um projeto, uma classe com um main, abrir um BuffereReader etc. Ou seja, tava mais complicado que cagar de macacão!

Piorou quanto percebi que o arquivo era muito grande e o meu programa ia sofrer um pouquinho. Fiquei logo com aquela cara de cachorro em dia de mudança.

Nesse momento me lembrei do sort. Rapaiz, bonito é o por do sol, bebês são bonitos, a russa do salto com vara é bonita...o sort é lindo!

olha só: sort -u arquivo


Pronto. Problema resolvido!

Mais programming tips aqui.

2 comentários:

Unknown disse...

E se você precisasse eliminar as linhas que são únicas? E se precisar contá-las?

Achou o sort lindo, dá uma olhada no que ele pode fazer em combinação com o uniq, nesses casos... (tenta uniq -d, uniq -u, uniq -c, uniq -uc, uniq -dc)...

;-)

João Arthur disse...

Pois é, já usava o uniq em alguns scripts.
Na verdade, descobri que a opção -u do sorte é referente ao uniq.

O uniq realmente já me quebrou grandes galhos nos tempos do ImpactAnalyzer. :)