Sed – Dica: Como substituir uma palavra em vários arquivos

Um uso bem simples do SED. Supondo que você tenha quatro scripts denominados menu1.sh, menu2.sh, menu3.sh e menu4.sh, e você queira substiuir o valor de uma variável que ocorre em todos os scripts.

Ex: nomeservidor=teste1

Para cada servidor em que você for colocar os seus scripts, precisará mudar o valor desta variável. Para isso você pode fazer o seguinte for, utilizando o comando sed para fazer a substituição em todos de uma vez:

for i in `ls menu*`
do
sed "s/teste1/teste2/g" $i > $i.NEW
mv $i.NEW $i
done

O loop acima está fazendo o seguinte: para cada [arquivo], ele faz a substituição e direciona para um novo arquivo, [arquivo].NEW. Em seguida, ele move o [arquivo].NEW contendo os dados corretos para o [arquivo].

 

One thought on “Sed – Dica: Como substituir uma palavra em vários arquivos”

  1. for i in ./*.txt
    do
    [[ -f “$i” ]] || continue
    sed “s/Duclos/Cute/g” $i > $i.new
    mv $i.new $i
    done

Leave a Reply

Your email address will not be published. Required fields are marked *