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.
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...