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

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

Re: [shell-script] selecionar parte final de uma linha após delimitador


From: Otávio Fernandes
Subject: Re: [shell-script] selecionar parte final de uma linha após delimitador
Date: Sun, 17 Feb 2008 13:44:13 -0300

2008/2/17 address@hidden <address@hidden>:
>
>
>
>
>
>
> Olá pessoal,
>
>  Sou inicante no shell, e estou precisando de uma pequena ajuda dos colegas.
>
>  Preciso separar a última parte de uma linha.
>  Tipo, uma linha de exemplo seria:
>
>  http://www.site.com.br/controle/interno/14_02_2008_15_44.avi
>
>  outra linha de exemplo seria
>
>  http://www.site.com.br/controle/interno/patio/deposito/03_01_2008_21_18.avi
>
>  (o nome do arquivo varia sempre, e
>  quantidade de delimitadores "/" também, o que não varia nunca
>  é que o campo de interesse é sempre a parte final, ou seja, tudo depois
>  do último "/" ).
>
>  Inicialmente, tentei usar o cut, com o seguinte comando:
>
>  NOME=http://www.site.com.br/controle/interno/arquivo.avi
>  echo $NOME | cut -f6 -d/
>
>  mas como a quantidade de delimitadores "/" pode variar, o cut não
>  funcionaria corretamente,
>  já que o cut conta partindo do início da linha.
>
>  Se eu tivesse como usar o cut ao contrário, ou seja, contando do final
>  da linha
>  até o início, seria bem simples, pq o meu campo de interesse é,
>  obrigatóriamente, sempre o último.
>
>  Agradeço muito mesmo, qualquer ajuda ou dica.
>
>  Obrigado
>
>  Emmanuel Abadala
>  Anápolis - Go
>
>  


Ola Emmanuel,

Acredito que nao ha nada melhor para isso do que um regex, como eu
tenho um bom conhecimento de perl, tive uma pequena ajuda dele, mas
temos inumeras outras formas de fazer isso, tanto com sed, cut, awk,
python, ruby, etc. Seguindo o conceito do shell script peguei um
one-liner em perl e veja o resultado:

NOME="http://www.site.com.br/controle/interno/arquivo.avi";
AVI=`echo $NOME |perl -ne 'if ( /.*?\/(\w+)\.avi$/ ) { print $1 . ".avi"; }'`

echo $AVI

Acredito que era isso que vc esperava :-)

um abraco,

-- 
 | --
 | Otávio Fernandes < otaviof | gmail | com >
 | FreeBSD 7.0-PRERELEASE && GNU/Linux User: 283.396
 | (( Especial Programação )) http://geekbr.podcastbrasil.com/ -- 0.15
 | --


reply via email to

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