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

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

Re: sed


From: pinguimrmbr
Subject: Re: sed
Date: Thu, 04 Nov 2004 09:54:37 -0000
User-agent: eGroups-EW/0.82

> mestres seguinte
> tenho uma variave quecontem o caracter "/"
> to usando o sed pra alterar o valor dessa variavel 
> to fazendo assim
> #!/bin/bash
> . conf
> sed 's/VAR=$VAR/VAR=123/' 
>  
> so que pelo conteudo de $VAR conter / tadando erro alguem poderia 
> me dar uma luz de como resolver isso ?

Ola, André

Voce esta com problemas de interpolacao de variaveis. Isso é uma boa 
pegadinha, que eu tbm aprendi "na marra" e com a ajuda de uns monges 
de perl.

Entao vamos la... vamos mudar um pouco a sua expressao

digamos que vc faca 
export MRB=home/mrbits

se voce fizer:

echo "VAR=$MRB" | sed -e 's/VAR=$MRB/VAR=123'

voce ganha o erro, pq a variavel $MRB esta sendo interpolada 
(resolvida dentro do codigo), e entao a expressao correta passada 
para o sed é s/VAR=home/mrbits/VAR=123 e na / entre home e mrbits o 
comando falhou.

Entretanto, se voce escapar os $, assim

echo "VAR=\$MRB" | sed -e 's/VAR=\$MRB/VAR=123'

a variavel nao vai ser interpolada ao codigo e o resultado será:

VAR=123

Se vc tem um arquivo teste.sh assim:

#!/bin/bash

DCF=$MRB

e quer trocar $MRB por 123, voce faz:

sed -e "s/DCF=\$MRB/DCF=123/g" teste.sh

e o resultado é:

#!/bin/bash

DCF=123

Um abraço






reply via email to

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