Olá pessoal
vlw pela ajuda... das opções que vcs me passaram adotei o parametro do
"sed-only"
Obrigado pela ajuda
________________________________________________
Renato de Oliveira Diogo
Bacharel em Ciência da Computação
UNESP - Bauru
Certificado com LPIC-1
[EMAIL PROTECTED]
[EMAIL PROTECTED]
2008/11/18 jimmy <[EMAIL PROTECTED]>:
> 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";#}' *
>
>