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.