Editei o post pq o Julio Neves viu em uma lista que enviei isso e fez várias melhorias, o código agora ficou bem mais otimizado
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
Código:
Position=3
Size=4
SizePercentage=100
Name=BigLinux
Basta usar a seguinte linha na shell:
Código:
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:
Código:
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
Um bom guia de SED em português para quem quiser se aprofundar nesse programa
http://sed.sourceforge.net/sed1line_pt-BR.html