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:
- 4060 gmail.com
- 2903 yahoo.com.br
- 2494 hotmail.com
- 1674 ig.com.br
- 1272 terra.com.br
- 891 bol.com.br
- 398 uol.com.br
- 369 yahoo.com
- 254 zipmail.com.br
- 221 pop.com.br
Este gmail é surpreendente mesmo, não? Caiu no gosto do povo...