[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]