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.


Dicas vi - Substituição de caracteres

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 05 de Setembro de 1997

Às vezes desejamos substituir caracteres que se encontram em determinada posição fixa em um texto, mas apenas aqueles caracteres e não atuar em caracteres semelhantes que se encontram em outra posição.

Tomemos o seguinte arquivo:


12345abcde12345abcdeabcde12345
12345abcde12345abcdeabcde12345
abcdeabcde12345abcdeabcde12345

Eu quero transformar a string abcde, a partir da coluna 6, na string ABCDE.

Para isto o comando

%s/^\(.....\)abcde/\1ABCDE/

faz exatamente o que preciso, resultando em

12345ABCDE12345abcdeabcde12345
12345ABCDE12345abcdeabcde12345
abcdeABCDE12345abcdeabcde12345

O caracter "\1" instrui o vi para deixar intactos os caracteres anteriores, representados por ".....". Caso eu não digitasse o caracter "\1" o resultado seria:

ABCDE12345abcdeabcde12345
ABCDE12345abcdeabcde12345
ABCDE12345abcdeabcde12345

Como visto acima, os caracteres que precedem a string que eu desejava substituir foram apagados.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida