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

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

Re: [shell-script] Removento trechos de uma string


From: Flavio Junior
Subject: Re: [shell-script] Removento trechos de uma string
Date: Wed, 13 Sep 2006 14:10:43 -0300

hm..
Nao se sei é mais elegante ou menos do que sua forma, mas é 1 forma:

root@bishamonten:~# SRC="scilab-3.9.7.tar.gz"
root@bishamonten:~# PACKAGE="$(echo $SRC | sed
's/\(.*\)-\(.*\)\(\..*\..*\)$/\1/')"
root@bishamonten:~# VERSION="$(echo $SRC | sed
's/\(.*\)-\(.*\)\(\..*\..*\)$/\2/')"
root@bishamonten:~# EXTENSION="$(echo $SRC | sed
's/\(.*\)-\(.*\)\(\..*\..*\)$/\3/')"
root@bishamonten:~# echo $PACKAGE $VERSION $EXTENSION
scilab 3.9.7 .tar.gz
root@bishamonten:~#


Sorte,

Flávio do Carmo Junior

On 9/13/06, address@hidden <address@hidden> 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: address@hidden
---------------------------------------------------------------------
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











reply via email to

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