[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Replace de informação em arquivo do tipo texto
From: |
Gustavo Chaves |
Subject: |
Re: [shell-script] Replace de informação em arquivo do tipo texto |
Date: |
17 Mar 2005 23:29:43 -0300 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 |
>>>>> On Thu, 17 Mar 2005 19:42:26 -0300 (ART), Wagner Nunes <address@hidden>
>>>>> said:
> tenho uma biblioteca c++ que tem ai mais ou menos umas
> 80.000 linhas e eu to precisando mudar TODAS as
> chamadas de um arquivo externo pra outro, então em
> todas as referencia de arquivo_antigo.exe precisa
> ficar arquivo_novo.exe... ... existe alguma forma de
> se automatizar isso atravéz de shell???? ou eu
> realmente terei que mudar uma a uma todas as chamadas
> desse arquivo????
Eu faria algo assim:
find /path/to/lib -name '*.cc' -exec perl -i.bkp -pe
's/\barquivo_antigo\.exe\b/arquivo_novo.exe/g' '{}' ';'
"/path/to/lib" seria o diretório sob o qual estariam todos os arquivos
C++.
"-name '*.cc'" diz pro find procurar todos os arquivos com extensão
'.cc'. Mude se você usar outra extensão.
Pra cada arquivo encontrado o find vai chamar o perl pra substituir as
strings. A opção '-i.bkp' diz pra manter os arquivos originais
sufixando-os com a extensão '.bkp'.
Tome cuidado com a expressão regular que casa com o
'arquivo_antigo.exe' pois se você a deixar muito genérica ela pode
"casar" e substituir outras coisas. Deixe-a o mais estrita possível.
Gustavo.