Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Sort, dd e outros mais
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 01 de Julho de 2004
Suponhamos que eu tenha um arquivo chamado nomes.txt com o seguinte conteúdo:
mAria@acme.com.br maria@acme.com.br Rubens@acme.com.br Maria@acme.com.br rubens@acme.com.br sonia@acme.com.br Sonia@acme.com.br
Eu estou interessado apenas nos endereços eletrônicos únicos. Para efeito de envio de mensagens, endereços como <mAria (a) acme com br> e <maria (a) acme com br> representam exatamente a mesma coisa. Sendo assim, gostaria de eliminá-los de minha lista.
Para isto:
% cat nomes.txt | dd conv=lcase | sort -u 0+1 registros de entrada 0+1 registros de saída 128 bytes transferred in 0,001221 seconds (104838 bytes/sec) maria@acme.com.br rubens@acme.com.br sonia@acme.com.br
Pronto, fico agora com apenas três nomes únicos.
Era assim que eu sempre fiz, por muitos anos. Entretanto, lendo a documentação do programa sort, descobri que estava tomando o caminho mais longo. Vejamos outra forma de se fazer isto:
% cat nomes.txt | sort -fu mAria@acme.com.br Rubens@acme.com.br sonia@acme.com.br
O comando sort possui a opção -f que o instrui a ignorar a caixa das letras e considerar nomes como mAria e maria como sendo a mesma coisa. Obtemos o mesmo resultado final, três nomes, porém com a grafia inalterada.
Caso não especifiquemos a flag -f, o sort irá exibir todos os nomes do arquivo original ordenados, sem eliminar as duplicatas.
$ cat nomes.txt | sort -u maria@acme.com.br mAria@acme.com.br Maria@acme.com.br rubens@acme.com.br Rubens@acme.com.br sonia@acme.com.br Sonia@acme.com.br
Veja a relação completa dos artigos de Rubens Queiroz de Almeida
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.





