você está aqui: Home  → Arquivo de Mensagens Programe sua mente para aprender inglês - ebook gratuito

Sort, dd e outros mais

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 01 de Julho de 2004

Tomemos um arquivo de nome 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:

$ dd conv=lcase if=nomes.txt | 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:

$ sort -fu nomes.txt
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.

$ sort -u nomes.txt
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