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

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

Re: RES: [shell-script] Variaveis no sed


From: Max Leandro Angelo
Subject: Re: RES: [shell-script] Variaveis no sed
Date: Thu, 06 Jan 2005 10:24:51 -0300
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Ola Julio!!

Muito obrigado pela explicacao:)

eu coloquei entre aspas as variaveis no comando do sed e nao funcionou
cat .installpath | sed 's/zlib/"$1 $2"/g'

tentei assim tbm....
cat .installpath | sed "s/zlib/$1 $2/g"
mas ele me retorna um erro
sed: -e expression #1, char 14: Unknown option to 's'

Sera q eu naum to conseguindo aplicar no meu exemplo, o conhecimento, da 
maneira correta? pode me dar um exemplo usando o sed, por favor? :)

obrigado!!

[]'s

Julio Cezar Neves - DATAPREVRJ wrote:

>Usando aspas, apóstrofos e barra invertida
>Para usar literalmente um caractere especial sem que o Shell interprete seu
>significado, coloque o caractere entre aspas ou entre apóstrofos ou coloque
>uma barra invertida antes dele. Seus usos característicos são melhores
>definidos assim:
>*      Aspas - Quando se coloca um caractere especial entre aspas, o Shell
>ignora o seu significado, exceto no caso deste caractere ser um cifrão ($),
>uma crase (`), ou uma barra invertida(\).
>*      Apóstrofos - Os apóstrofos são mais restritivos. Todos os caracteres
>entre apóstrofos são ignorados.
>*      Barra Invertida - O Shell ignora um e somente um caractere que segue
>a barra invertida. Quando colocada ao final da linha, o Shell interpreta a
>barra invertida como um aviso de continuação da linha, devolvendo um prompt
>secundário (PS2) na linha seguinte da tela. Mas, note bem, isto ocorre
>porque o <ENTER> não foi visto pelo Shell por estar seguindo a contra barra.
>                               Se você for criativo, descobrirá muitos usos
>para a barra invertida.Vejamos um unalias imediato: suponha que você tenha
>feito: alias rm='rm -i', caso você execute: \rm <arq>, o arquivo <arq> será
>removido sem solicitar a confirmação, porque quando você colocou a
>contrabarra (\), você escondeu da interpretação do Shell o r do comando rm,
>então ele não executou o alias.
>Exemplos:
>$ echo *
> Arq1 Arq2 ....
>$ echo \\      A 1ª barra invertida inibiu a atuação da 2ª
>\
>$ echo \       O Shell  não viu o <ENTER> e
>  
>
>> <^c> devolveu um prompt secundário (>)
>>    
>>
>$ echo "\"     As aspas não inibem a interpretação da \
>  
>
>><^c>
>>    
>>
>$ echo Estou escrevendo uma linha compacta.
>Estou escrevendo uma linha compacta
>$ echo Assim    não   se       escreve    uma    linha    espacejada.
>Assim não se escreve uma linha espacejada.     Os brancos são
>significativos para o Shell
>$ echo  "Estou     escrevendo   uma       linha     espacejada."
>Estou     escrevendo   uma       linha     espacejada.
>
>Então, conforme você viu, para que as variáveis sejam interpretadas pelo
>shell, é necessário que elas estejam entre aspas e não entre apóstrofos.
>
>Julio 
>:wq
>
>| -----Mensagem original-----
>| De: Max Leandro Angelo [mailto:address@hidden]
>| Enviada em: quinta-feira, 6 de janeiro de 2005 10:45
>| Para: address@hidden
>| Assunto: [shell-script] Variaveis no sed
>| 
>| 
>| 
>| Ola
>| 
>| Estou fazeendo uma funcao q o valor recebe duas variaveis e 
>| insere num 
>| comando sed, mas o sed, naum reconhece minhas variaveis, pq 
>| sua sintaxe 
>| fica entre ''.... como posso usar variaveis em uma sintaxe no sed??
>| 
>| meu script eh o seguinte:
>| 
>| #./bin/bash
>| 
>| addpath_install ()
>|         {
>|                 case $1 in
>|                   zlib)  cat .installpath | sed 's/$1/$(echo 
>| $1 \t $2/g' 
>|  > teste ;;
>|                 esac
>|         }
>| 
>| addpath_install zlib /usr/local
>| 
>| --------------------------------------------------------------
>| --------------------------------
>| 
>| Minha ideia, eh verificar qual o nome da biblioteca (zlib) que foi 
>| informado, e inserir o caminho informado na segunda variavel, 
>| dentro do 
>| arquivo .installpath, substiuindo a linha inteira onde estava 
>| a primeira 
>| variavel, pelo conjunto formado pela primeira variavel + 
>| segunda variavel :)
>| 
>| Esse script somente elimina a primeira variavel, q estah na 
>| linha... eu 
>| queria uma q apagasse a linha, e inserisse o conjunto... :(
>| 
>| -- 
>| Max Leandro Angelo
>| Suporte Tecnico
>| SoftExpert Quality Software
>| +55 (47) 2101-9900
>| http://www.softexpert.com
>| 
>| 
>| 
>| ---------------------------------------------------------------------
>| Esta lista não admite a abordagem de outras liguagens de 
>| programação, como perl, C etc. Quem insistir em não seguir 
>| esta regra será moderado sem prévio aviso.
>| ---------------------------------------------------------------------
>| Sair da lista: address@hidden
>| ---------------------------------------------------------------------
>| Esta lista é moderada de acordo com o previsto em 
>http://www.listas-discussao.cjb.net
>---------------------------------------------------------------------
> 
>Links do Yahoo! Grupos
>
>
>
>
> 
>
>
>
>
>---------------------------------------------------------------------
>Esta lista não admite a abordagem de outras liguagens de programação, como 
>perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
>aviso.
>---------------------------------------------------------------------
>Sair da lista: address@hidden
>---------------------------------------------------------------------
>Esta lista é moderada de acordo com o previsto em 
>http://www.listas-discussao.cjb.net
>---------------------------------------------------------------------
> 
>Links do Yahoo! Grupos
>
>
>
>
> 
>
>
>
>
>  
>

-- 
Max Leandro Angelo
Suporte Tecnico
SoftExpert Quality Software
+55 (47) 2101-9900
http://www.softexpert.com



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



reply via email to

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