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: Flavio Junior
Subject: Re: [shell-script] selecionar parte final de uma linha após delimitador
Date: Sun, 17 Feb 2008 14:43:37 -0200

[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/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 <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
>
>  


reply via email to

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