você está aqui: Home  → Arquivo de Mensagens

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

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script