Alterar conteúdo de arquivo em diversas pastas do sistema

1. Alterar conteúdo de arquivo em diversas pastas do sistema

Diego Cruz
diegocpcruz

(usa Linux Mint)

Enviado em 10/05/2013 - 14:35h

Olá pessoal, desculpe se minha pergunta é muito leiga, mas meu problema é o seguinte:

Preciso substituir todas as ocorrências de uma string, dentro de arquivos que contenham ela, por outra string. Por exemplo:

Quero substituir "abc" por "abcde" em todos os arquivos dentro da pasta MINHA_PASTA, percorrendo todas as suas subpastas.

Meu problema está em percorrer em todas as subpastas, entrando em cada arquivo, pois em relação a alterar os arquivos eu já tenho *alguma* ideia (estou aceitando sugestões sobre isso também rs ).

Obrigado


  


2. Re: Alterar conteúdo de arquivo em diversas pastas do sistema

Daniel P. L. Almeida
daniel.uramg

(usa Outra)

Enviado em 13/05/2013 - 16:29h

Olá,

vou dar um chute por alto veja se já ajuda em algo =]
sed -i "s/abc/abcde/g" /pasta/*




3. Re: Alterar conteúdo de arquivo em diversas pastas do sistema

Fernando
phoemur

(usa Debian)

Enviado em 13/05/2013 - 19:14h

Vou dar um palpite (aqui funcionou):


find /home/ -iname *.txt -exec sed -i 's/abc/abcde/g' {} \;


Só trocar o nome da pasta, o *.txt são os arquivos que você vai querer editar...



4. Re: Alterar conteúdo de arquivo em diversas pastas do sistema

Fernando
phoemur

(usa Debian)

Enviado em 13/05/2013 - 19:47h


$ for i in $(find /home/ -iname *.txt); do sed -i 's/abc/abcde/g' $i; done



5. Resolvido

Diego Cruz
diegocpcruz

(usa Linux Mint)

Enviado em 13/05/2013 - 22:44h

Olá, pessoal

Obrigado pela ajuda de todos, mas já tinha conseguido, com o seguinte comando:

grep -l -R 'abc' * | xargs sed -i 's/abc/abcde/g' 


Obrigado a todos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts