[EMAIL PROTECTED] root]# cat x 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 [EMAIL PROTECTED] root]# sed 's#.*/##' x 14_02_2008_15_44.avi 03_01_2008_21_18.avi [EMAIL PROTECTED] 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 [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > > > > > > 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 > >
