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.


Separação de caracteres com vim

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 30 de abril de 2012

Recentemente eu tive que editar uma longa lista de nomes e telefones. Os números de telefone estavam ligados, sem espaços, o que dificulta a leitura. Uma linha de exemplo:

  1999876654 ! Joaquim
  
  ... e milhares de outras linhas

Para fazer a mudança, com o vim, eu emiti o seguinte comando:

  %s/^../& /

Este comando me retornou:

  19 99876654 ! Joaquim

O que eu fiz foi pegar os dois caracteres iniciais do arquivo, representados por ^.. e trocar pelo mesmo caractere (&) e acrescentar um espaço em branco. O caret (^) significa "começo de linha". Os pontos representam qualquer caractere que estiver naquela posição. O caractere & indica a string pela qual buscamos. Por exemplo, se eu quiser trocar, em um texto, todas as ocorrências da palavra teste, por teste concluído , basta emitir o comando:

  %s/teste/& concluído/

O & será substituído pela palavra teste, na segunda parte da expressão acima.

Continuando ...

Falta agora separar o número do telefone em dois blocos de quatro algarismos. Para isto, emiti o comando:

  %s/^.. ..../& /

E pronto:

  19 9987 6654 ! Joaquim

A nossa cabeça funciona melhor quando podemos agrupar os números em blocos menores.

E obrigado ao vim :-)

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