De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida