Valeu as dicas. Achei bem mais elegante a proposta do Flávio, com o sed. 
Já a adotei.

Somente para esclarecer:

O sed está separando o nome do pacote em três partes, do final do nome 
para o início:

(.*\..*)$   - bloco terminado com xxxxx . (\. escape do ponto) xxxx
\.             - separador do segundo bloco (VERSION.EXTENSION$)
(.*)          - qualquer coisa, segundo bloco
-              - separador do segundo para o primeiro bloco NOME-VERSION
(.*)          - primeiro bloco

Quando se vê da primeira vez parece coisa do outro mundo. Gostei.

Testei também a dica do Tiago B, mas o egrep não funcionou. Mas a 
simplicidade do sed + ER (.*-.*\..*\..*$). Simples e funcional.

Obrigado,
Alves
> Ah.. se voce percebeu o .tar.gz e quer tirar o . do inicio, é soh
> mudar uma baba na regex, ficando assim:
>
> sed 's/\(.*\)-\(.*\)\.\(.*\..*\)$/\3/'
>
> Só joguei o ponto pra fora do conjunto 3...
>
>
> Flávio do Carmo Junior
>
> On 9/13/06, Flavio Junior <[EMAIL PROTECTED]> wrote:
> > hm..
> > Nao se sei é mais elegante ou menos do que sua forma, mas é 1 forma:
> >
> > [EMAIL PROTECTED]:~# SRC="scilab-3.9.7.tar.gz"
> > [EMAIL PROTECTED]:~# PACKAGE="$(echo $SRC | sed
> > 's/\(.*\)-\(.*\)\(\..*\..*\)$/\1/')"
> > [EMAIL PROTECTED]:~# VERSION="$(echo $SRC | sed
> > 's/\(.*\)-\(.*\)\(\..*\..*\)$/\2/')"
> > [EMAIL PROTECTED]:~# EXTENSION="$(echo $SRC | sed
> > 's/\(.*\)-\(.*\)\(\..*\..*\)$/\3/')"
> > [EMAIL PROTECTED]:~# echo $PACKAGE $VERSION $EXTENSION
> > scilab 3.9.7 .tar.gz
> > [EMAIL PROTECTED]:~#
> >
> >
> > Sorte,
> >
> > Flávio do Carmo Junior
> >
> > On 9/13/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > > Olá pessoal,
> > >
> > > Estou buscando uma forma alternativa de fazer a seleção de trechos
> > > específicos de uma string. O problema é o seguinte: Tenho o nome 
> de uma
> > > fonte de um programa no formato "nome-versão.extensão", onde a 
> extensão
> > > geralmente é .tar.gz ou .tar.bz2. Vou considerar com VERSION tudo 
> entre
> > > o "-" após o nome e o "." à frente da extensão. O nome (PACKAGE) já
> > > possuo, mas quero remover a VERSION e a EXTENSION. Estou fazendo da
> > > forma abaixo:
> > >
> > > PACKAGE="scilab"
> > >
> > > SRC="scilab-3.9.7.tar.gz"
> > >
> > > EXTENSION=$( echo $SRC | rev | cut -f-2 -d. | rev )
> > >
> > > => tar.gz
> > >
> > > VERSION=$( T=`echo ${SRC#$PACKAGE-}`; echo ${T%.$EXTENSION} )
> > > ou
> > > VERSION=`echo ${SRC#$PACKAGE-}`; VERSION=`echo ${VERSION%.$EXTENSION}`
> > >
> > > => 3.9.7
> > >
> > > Posso imaginar outras formas de fazer o mesmo, com:
> > >
> > > echo $SRC | rev | awk -F. '{ print $1"."$2}' | rev
> > >
> > > para a EXTENSION, mas gostaria de conhecer algumas versões da lista.
> > > Alguém se habilitar?
> > >
> > > Até
> > > Alves
> > >
> > >
> > > _______________________________________________________
> > > Yahoo! Acesso Grátis - Internet rápida e grátis. Instale
> > > o discador agora!
> > > http://br.acesso.yahoo.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: [EMAIL PROTECTED]
> > > ---------------------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> > > ---------------------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> > >
> > >
> > >
> >
> 


        

        
                
_______________________________________________________ 
Você quer respostas para suas perguntas? Ou você sabe muito e quer compartilhar 
seu conhecimento? Experimente o Yahoo! Respostas !
http://br.answers.yahoo.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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a