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: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Problemas de sed com variavel de shell
Date: Tue, 18 Nov 2008 00:17:52 -0200

2008/11/17 Renato de Oliveira Diogo <address@hidden>

> 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? <address@hidden>
>

Este negócio da dar uma luz, deixo para as pessoas do sexo feminino :P

Segue uma sugestão sed-only com uma pequena mudança de abordagem:

for l in *; do
  sed -i '/file/{s#"#"slaves.rev/#' $l
done

O que o sed está fazendo é provocar a alteração da primeira ocorrência do
caracter " pelo que você quer.

Para testar sem modificar seus arquivos, retire a opção -i.

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


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



reply via email to

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