Olá pessoal tudo bem?
Existe algum comando no linux que substitua uma palavra, por outra em todos os arquivos de um diretório?\\
Abraços
Dirceu
Olá pessoal tudo bem?
Existe algum comando no linux que substitua uma palavra, por outra em todos os arquivos de um diretório?\\
Abraços
Dirceu
Olá!
O comando sed faz isso. Como a substituição é em vários arquivos, teria que ser feito um um laço "for" para ler cada arquivo do diretório e fazer a substituição. Algo como:
--------------------------
#!/bin/bash
for i in /diretorio/* do;
cat $i | sed 's/texto1/texto2' > $i.new
done
--------------------------
Acho que é mais ou menos isso. Não testei, mas deve funcionar.
:good:
[]'s
Cléoson.
Muito bom obrigada...
Acabei fazendo um aplicativo em java que faz isto...
heheh
vou tentar com shell agora..
cleoson,
testei aki e esta funcionado blz, a unica coisa q tem q alterar nele é o ";" e coloca-lo antes do "do"
#!/bin/bash
for i in /diretorio/*; do
cat $i | sed 's/texto1/texto2' > $i.new
done
Agora, eu estava percebendo, ele não faz é a verificação da palavra inteira portanto:
samba
sambando
# sed 's/samba/rock'
rock
rockndo
tentei varias formas de resolver isso mas sem secusso, alguem tem uma dica?
sei que dentro do vim tem isso só não lembro o comando vou peaquisar qualquer coisa posto aqui mas tenho certeza que pelo vim da ja fiz varias vezes mas não lembro.
Abraços
Ai galera achei ta ai alterar pelo vim
:1,$s/Slackware/Debian/g
onde:
1 -> Primeira linha;
$ -> Última linha do arquivo;
s -> Substituição;
/Slackware -> String a ser substituída;
/Debian -> String substituta;
/g -> Global, ou seja, alterar todas as ocorrências.
Blz, isso mesmo.
Funcionou na boa.
Valeu