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.
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 :-)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários