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
>
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
>
> ------------------------------------
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";#}' *