terça-feira, 24 de fevereiro de 2009

Executando o Vim dentro de um shell script

Suponha que você quer trocar um determinado string por outro em vários arquivos.
O jeito mais ágil é escrever um shell script para fazer o trabalho.

Primeiro escreva os comandos Ex que farão a mudança no arquivo.
Escreva os comandos (comandos de linha de comando) em um arquivo:
:%s/-person-/Jones/g
:write tempfile
:quit
e grave como change.vim.

Agora rode o vim como um comando do shell usando o seguinte shell script:
for file in *.txt; do
vim -e -s $file < change.vim
lpr -r tempfile
done
Agora a descrição dos comandos do shell (bash):

for line... é um loop do shell que repete os comandos dentro dele. A variável $file recebe um nome de arquivo a cada passo do loop.
vim... roda como um comando de shell em modo Ex (-e), editando o arquivo $file
e lendo comandos ( < change.vim) do stdin, no modo silencioso (-s) ou seja,
sem apresentar prompts.
lpr... imprime o arquivo tempfile e o deleta no final (-r)

0 comentários:

Postar um comentário