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

Re: [OT] Expresão regular para filtar URL



Maxwillian Miorim escreveu:
On 7/17/07, Wendell Almeida <wendell@ctech.srv.br> wrote:
Necessito pegar uma url e apresentar somente o site:
URL
http://www.itau.com.br/campanhas/bankline/lancamento/detecta_482x192.htm
https://itaubankline.itau.com.br:443
Resultado: SITE
http://www.itau.com.br
https://itaubankline.itau.com.br
Fiz a seguinte expressão regular para usar com o sed:
sed 's/\w\+:\/\/\(\w\+-\?\w*\.\)\+\w*//' arquivo_com_urls
O padrão casa substituindo o site:
/bankline/lancamento/detecta_482x192.htm
:443
Eu preciso negar isso. Obter o efeito contrário, ou seja, apresentar
somente o que casa com o padrão.
Tentei de várias formas e não consegui.
Parece que não é possível se ter um grupo dentro da lista ou uma lista
dentro de outra.
Não consegui visualizar outra ER para os padrões de sites.
Será que tem uma ER melhor?
É por isso que eu gosto do awk :)
awk -F/ '{ printf("%s//%s\n",$1,$3); }' /arquivo/com/urls
Work smarter, not harder ;)

Olá,

Esse awk não serve no caso de se ter uma porta, o correto seria: awk -F[/:] '{ printf("%s://%s\n",$1,$4); }'
   Com sed também dá: sed 's/\(.*\/\/[^\/\:]*\).*/\1/'
Com shell também: while read url; do proto="${url%%:*}"; site="${url#*://}"; site="${site%%[:/]*}"; echo "$proto://$site"; done É uma questão de sabe o que quer e usar corretamente a ferramenta. Veja que com qualquer outra linguagem é possível, depende do seu domínio sobre a ferramenta ou linguagem.


--
Atenciosamente,

          Junior Polegato

          Um peregrino de problemas; Um pergaminho de soluções!
          Página Profissional: http://www.juniorpolegato.com.br



Reply to: