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

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

Re: [shell-script] Problemas de sed com variavel de shell


From: jimmy
Subject: Re: [shell-script] Problemas de sed com variavel de shell
Date: Tue, 18 Nov 2008 09:26:47 -0200
User-agent: Mutt/1.4.2.3i

On Mon, Nov 17, 2008 at 06:39:28PM -0200, Renato de Oliveira Diogo wrote:
> Senhores
> 
> boa tarde
> 
> estou fazendo um pequeno script substituição de uma string por outra
> (complementação). Porém estou tendo problemas em montar corretamente o
> script do sed, pelo motivo que o conteúdo das minhas variáveis tem
> pontos e barras não sei se o sed está tratando isso como metacaracter:
> 
> so para entender, tenho um nome de arquivo 10.168.192.in-addr.arpa.db,
> dele capturo a linha
> file "10.168.192.in-addr.arpa.zone";
> e quero substituir a mesma por:
> file "slaves.rev/10.168.192.in-addr.arpa.zone";
> 
> 
> 
> for I in $( ls );
> do
>         zone=`grep file $I | cut -d\" -f2`;
> #       echo $zone
>         sed -e s/"$zone"/"slaves.rev//$zone"/ $I;
> done
> 
> Quando executo o trecho acima, da o erro:
> sed: -e expression #1, char 43: unknown option to `s'
> Obs.: não é as barras duplas, pois ja deixei somente com uma e nao deu na 
> mesma.
> 
> Alguem pode me dar uma luz?
> 
> []s
> ________________________________________________
> Renato de Oliveira Diogo
> 
> Bacharel em Ciência da Computação
> UNESP - Bauru
> 
> address@hidden
> address@hidden
> 
> ------------------------------------

talvez uma abordagem diferente resolva melhor o problema:

zone='file "slaves.rev/10.168.192.in-addr.arpa.zone";'
sed "/file/{s#.*#$zone#}" *

ou numa linha só:

$ sed '/file/{s#.*#file "slaves.rev/10.168.192.in-addr.arpa.zone";#}' *



reply via email to

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