shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] como alterar linha de arquivo


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] como alterar linha de arquivo
Date: Wed, 30 Mar 2005 18:37:57 -0300 (BRT)

Alain, @ 17:23:

> Oi Luis, eu também tenho um problema em espera como esse. Na verdade
> arquivos como o smb.conf representam um problema um pouco mais
> complicado: Existem partes separadas por [colchetes], dentro desta parte
> é que tem que ser achar a linha, testando o que está *antes* do '='.
> Exemplo:
>
> # Diretorio para instalacao
> [install]
> path = /home/install
> read only = yes
> write list = alain,root
> # Diretorio do Administrativo
> [admin]
> path = /home/admin
>
> Agora suponha que eu queira mudar dentro de "[install]" a linha "path"
> para "/install". Ou a linha pode até não exitir e tem que ser criada
> antes da próxima linha com "[" ...

Complicado isso. Precisa ser mesmo em shell script?

(eliphas tenta entrar em um estado criativo)

#!/bin/sh
cp smb.conf smb.conf.bkp
SecaoAtual=""
SecaoQueEuQuero="[install]"
while read line; do
     if echo "$line" | grep -q "^[[].*]"; then
         SecaoAtual="$line"
     elif [ "$SecaoAtual" == "$SecaoQueEuQuero" ]; then
         if echo "$line" | grep -q "^path ="; then
             $line = "path = /install"
         fi
     fi
     echo "$line"
done < smb.conf.bkp > smb.conf

Feio, mas deve servir (NÃO TESTEI! use em um arquivo temporário antes
pra ver se serve.)

Se você está tentando fazer uma interface, dá uma olhada no SWAT ou no
webmin (módulo em perl). Vai ficar bem mais fácil seu trabalho.

-- 
Eliphas

> Luis Tiani escreveu:
>> Tente algo do tipo:
>>
>> $ sed -i 's/<texto_procurado>/<texto_alterado>/g' /etc/smb.conf
>>
>> On Tue, 29 Mar 2005 21:19:30 -0300,
>> Ricardo Paiva <address@hidden> wrote:
>>
>>> Pessoal tem como editar uma linha de um arquivo tipo smb.conf,
>>> entrar no arquivo pesquisar uma determinada linha e substituí-la
>>> por outra que tenha no script ???

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]