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

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

Re: [shell-script] Melhorar express�o sed.


From: Adriano da Silva Múfalo
Subject: Re: [shell-script] Melhorar expressão sed.
Date: Tue, 8 Apr 2003 11:26:27 -0300

Obrigado Thobias, era isso mesmo...
Preciso começar a entender melhor os conceitos e "pensar" igual o sed...
Depois disso vai ficar fácil
:-)

----- Original Message -----
From: "Thobias Salazar Trevisan" <address@hidden>
To: <address@hidden>
Sent: Tuesday, April 08, 2003 10:50 AM
Subject: Re: [shell-script] Melhorar expressão sed.



ae adriano,

On Tue, 8 Apr 2003, Adriano da Silva Múfalo wrote:

> fiz nas seguintes etapas:
> DATA="20030407"
> lynx -source
http://www.symantec.com.br/avcenter/download/pages/BR-N95.html
> | grep "$DATA.*\-i32.exe"
> q me retornou:
> <td><p><b><a
>
href="/avcenter/download/us-files/20030407-007-i32.exe">20030407-007-i32.exe
> </a></b></p></td>
>
> e então, adicionei o seguinte ao final para pegar apenas o
> conteúdo entre as aspas..
> | sed 's/^.*="//;s/".*$//'
> e aí me retorna:
> /avcenter/download/us-files/20030407-007-i32.exe
>
> pergunta: existe uma forma de melhorar isto q estou fazendo ? eu acredito
q
> sim.. pois meu conhecimento de sed tende a zero.... :-)
> Alguém poderia me ajudar a melhorar ?
> o q eu queria era algo assim:
> sed '/^.*="(MOSTRE ME APENAS O Q ESTIVER AQUI)">.*$/'

pode usar um sed pra fazer o grep e a substituicao:

lynx -source -dump \
http://www.symantec.com.br/avcenter/download/pages/BR-N95.html |\
sed -n \
'/20030407[0-9-]\+-i32.exe/{s/.*href="\([^">]\+\).*$/\1/;p;}'

-n nao imprime nada alem do que for mandado

/20030407[0-9-]\+-i32.exe/ fizemos o grep
e somente nestas linhas fizemos a substituicao
s/.*href="\([^">]\+\).*$/\1/ substitui qualquer coisa ateh href="
por anda, depois cria um grupo de caracteres diferente de " e
substitui por nada ateh o final da linha. Ou seja deixamos
somente o que esta entre href=" e "

p; imprime o resultado.

no lynx vc tb pode usar soh lynx -dump http:///.... |
que ele nao te imprime o codigo html.
ai basta fazer lynx -dump ..... |
sed -n '/20030407[0-9-]\+-i32.exe/{/http/s/^[ 0-9\.]\+//p;}'

Note que usando somente o -dump, no lugar das url no html ele te
colocara um index. assim:

[17]20030407-007-i32-1.exe

todas as url do arquivo serao colocadas em baixo na saida:

 17. http://www.symantec.com.br/avcenter/download/us-files/\
20030407-007-i32-1.exe

acho que nao fui muito claro. mas faz o lynx dump http... > x
que vc vai entender.

falow

thobias
-------
echo 24883721290304465999833114447114149701898P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------



---------------------------------------------------------------------
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.listasdiscussao.cjb.net
---------------------------------------------------------------------


Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html




reply via email to

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