você está aqui: Home  → Arquivo de Mensagens

Usando comandos externos no vim (2)

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 28 de Janeiro de 2007

Mais alguns comandos úteis para serem usados em conjunto com o vim:

1. Eliminar linhas em branco

O comando cat, com a opção -s, remove linhas em branco consecutivas de um arquivo.

  :%!cat -s

2. Ordenar relação de emails pelo domínio

Um endereço de email é composto de duas partes: a identificação do usuário e o domínio de email, separados pelo caractere @. Para ordenar uma lista de endereços pelo domínio, usamos o comando sort, como abaixo:

Arquivo de entrada

  queiroz@example.com.br
  almeida@dicas-l.com.br
  jonas@acme.com.br

O comando:

  :%!sort -t "@" -k2 

fará o que desejamos, usando como delimitador o caractere @ e ordenando pelo segundo campo (-k 2).

O arquivo ordenado ficará da seguinte forma:

  jonas@acme.com.br
  almeida@dicas-l.com.br
  queiroz@example.com.br

3. Contagem de ocorrências

Finalmente, caso eu esteja interessado em conhecer quantos emails eu possuo de determinado domínio:

  :%s/^.*@//

Este comando remove todos os caracteres, até encontrar a primeira ocorrência do caractere @. Ficamos então, no arquivo, apenas com os nomes de domínio. A identificação dos usuários é removida.

  :%!sort 

Este comando faz uma ordenação simples e, finalmente

  :%!uniq -c

faz a contagem das linhas iguais e exibe o número de ocorrências. Para a lista dos assinantes da Dicas-L, eu obtive o seguinte resultado, com relação ao número de assinantes por domínio:

  1. 4060 gmail.com
  2. 2903 yahoo.com.br
  3. 2494 hotmail.com
  4. 1674 ig.com.br
  5. 1272 terra.com.br
  6. 891 bol.com.br
  7. 398 uol.com.br
  8. 369 yahoo.com
  9. 254 zipmail.com.br
  10. 221 pop.com.br

Este gmail é surpreendente mesmo, não? Caiu no gosto do povo...



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