segunda-feira, 23 de abril de 2012

Dica: Busca e substituição utilizando o editor de texto "VIM"

Bom dia,

Vai uma dica para que utiliza o editor "VIM" no terminal Linux.

Trabalho diariamente via linha de comando e utilizo bastando o "vim". Não é tão intuitivo quanto ao "nano" mas gosto dele mesmo assim.

Precisei editar um arquivo para substituir uma seria de entradas de um texto especifico. Tarefa fácil para o Word, mas no editor "vim" nunca tinha feito.

Pesquisei um pouco e encontrei no blog do Vinicius Cordeiro o que eu precisava.

Ao abrir o arquivo:

vim arquivo.txt

Basta digitar o seguinte comando:

:%s/PalavraAntiga/PalavraNova/gc

Ele vai substituir todas as PalavraAntiga por PalavraNova, lhe perguntando o que fazer a cada referência encontrada, se quiser desabilita isso basta remover o c após a / e ele vai substituir todas. (texto original do Vinícius)


Pesquisei mais um pouco e encontrei no site WIKI do VIM algumas variações e explicações.

:s/PalavraAntiga/PalavraNova/g
          Substitui 'PalavraAntiga' pela 'PalavraNova' na linha atual

:%s/PalavraAntiga/PalavraNova/g
          Substitui 'PalavraAntiga' pela 'PalavraNova' em todas as linhas

:%s/PalavraAntiga/PalavraNova/gc
          Substitui 'PalavraAntiga' pela 'PalavraNova' em todas as linhas e solicita confirmação

:%s/PalavraAntiga/PalavraNova/gcI
          Mesmo da anterior mas é Case Sensitive (palavra exata)


A opção g significa global, ou seja, todas as ocorrências na linha são substituídas (ou verificadas) e não apenas a primeira.

-----------------------------------------------------------------------------------------------

Exemplo:
O arquivo texto1.txt contém o seguinte texto:

O João gosta da Maria. Mas a Maria gosta do Zé.


Ao editar o arquivo com o 'vim' e executar o seguinte comando:


:s/Maria/Ana

Ele altera apenas a primeira entrada de Maria, ficando assim:

O João gosta da Ana. Mas a Maria gosta do Zé.

Se utilizarmos o 'g' (no arquivo com o texto original):

:s/Maria/Ana/g


O resultado seria este:
O João gosta da Ana. Mas a Ana gosta do Zé.

-----------------------------------------------------------------------------------------------

Bom o resto é intuitivo. Qualquer duvida basta comentar...
Valeus...
Mad2ogs (Thiago Morais)

2 comentários:

  1. Massa, tu podia postar um tutorial completo do VIM. O que achas?

    ResponderExcluir
    Respostas
    1. Um tutorial do VIM.... Humn... poderia ser interessante, vou pensar no assunto!! Valeu

      Excluir