henrique escreveu:
tem que ser usando o sed ? se fosse usando o perl eu usaria :perl -i.back -pe "s/textoantigo/textonovo/g" * Em Segunda 26 Março 2007 15:54, Davi escreveu:Há algum tempo atrás, na lista, alguém precisou substituir um mesmo texto em vários arquivos de uma vez e foi sugerido o uso do sed... Eu sei que foi algo recente (esse ano, para ser exato), mas procurei nos arquivos e não achei... Se alguém ainda tiver arquivada a solução e puder me encaminhar, eu agradeço!! =]
Olá,E com sed não mudaria muito, mas o código ficaria um pouco mais interativo e de alto-nível (em termos de linguagem):
for ARQ in *; do echo $ARQ; mv "$ARQ" "$ARQ.bak"; sed "s/textoantigo/textonovo/g" "$ARQ.bak" > "$ARQ"; done
ou ainda, usando o find com a opção -exec, podemos pegar uma árvore de diretórios:
find . -type f -exec bash -c 'echo "{}"; mv "{}" "{}.bak"; sed "s/textoantigo/textonovo/g" "{}.bak" > "{}"' \;
-- Atenciosamente, Junior Polegato Um peregrino de problemas; Um pergaminho de soluções! Página Profissional: http://www.juniorpolegato.com.br