[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
- Re: [shell-script] Re: Configurando Firewall, Alain, 2004/11/01
- Re: [shell-script] Re: Configurando Firewall, Alain, 2004/11/01
- Re: [shell-script] Firewall, Manuel Gonçalves da Silva Neto, 2004/11/04
- Re: [shell-script] Firewall, Alain, 2004/11/05
- Re: [shell-script] Firewall, Rodrigo, 2004/11/05
- time e redirecionamento, Miranda, 2004/11/05
- Re: [shell-script] time e redirecionamento, gleimar botelho, 2004/11/05
- Re: [shell-script] Firewall, Edinaldo de Souza Revoredo Junior, 2004/11/04
- Re: [shell-script] Firewall, Alain, 2004/11/05