[root@gandalf root]# cat x
http://www.site.com.br/controle/interno/14_02_2008_15_44.avi
<http://www.site.com.br/controle/interno/14_02_2008_15_44.avi>
http://www.site.com.br/controle/interno/patio/deposito/03_01_2008_21_18.avi
<http://www.site.com.br/controle/interno/patio/deposito/03_01_2008_21_18.avi>
[root@gandalf root]# sed 's#.*/##' x
14_02_2008_15_44.avi
03_01_2008_21_18.avi
[root@gandalf root]#
Ou seja:
Substitua TUDO até a "/" por nada:
s = substituir
# = deliimitador de "substituir o que # pelo o que #"
Como o * é "guloso", o TUDO até a / chega na ultima barra. E resolve
tue problema...
pra entender melhor o sed, faça exemplos com o echo:
echo teste | sed 's#e#U#'
tUste
o simbolo delimitador pode ser qualquer um.. o mais comum é a /, mas
como ela era parte da tua string, eu preferi usar outro...
echo teste | sed 's/e/U/g'
tUstU
veja o "g" no final, que diz "Substitua TODAS ocorrencias, e não so a
primeira"
--
Flavio do Carmo Junior
2008/2/17 address@hidden <mailto:shell-script%40abdala.org>
<address@hidden <mailto:shell-script%40abdala.org>>:
>
>
>
>
>
>
> 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
<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
<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
<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
>
>