shell-script-pt
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]