Como substituir uma linha em qualquer arquivo de texto

Uma tarefa que costuma ser bastante chata é modificar uma linha ou mais linhas de um arquivo de configuração usando Shell Script, porém existe uma solução fácil, veja o exemplo:

Vamos modificar o valor da variável Size de 4 para 10 do arquivo abaixo supondo que esse arquivo é o /etc/biglinux

Position=3
Size=4
SizePercentage=100
Name=BigLinux


Basta usar a seguinte linha na shell:

sed -i 's/^Size=.*/Size=15/' /etc/biglinux


O ^Size= Especifica que é para alterar apenas a linha que começar com Size= o .* especifica que é para apagar toda a linha e o Size=15 é o que deve ser escrito no lugar do que estava antes.

O primeiro /etc/biglinux diz ao sed qual o arquivo que ele deve ler, e o -i diz que é para alterar esse mesmo arquivo e não apenas exibir na tela.

O sed aceita adicionar várias modificações em série, sem precisar salvar varias vezes, veja no exemplo:

sed -i 's/^Size=.*/Size=50/;s/^Name=.*/Name=Bruno/;s/^Position=.*/Position=55/' /etc/biglinux


Espero que seja útil para vocês e se souberem de alguma forma mais simples que divulgue-a.

Agradeço ao Julio Neves que ajudou a melhorar esse script em sed que foi apresentado Smile

0 comentários: