protocolo, servidor e linguagem de três urls assim:
http://www.uol.com.br/index.php
http://www.oi.com.br/recados.asp
https://google/services.pl
trata-las e gerar esta saída:
protocolo: http server: uol linguagem: php
protocolo: http server: oi linguagem: asp
protocolo: https server: google linguagem: pl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Criado em:Ter 27/Abr/2010 hs 10:23 | |
# Last Change: Ter 27/Abr/2010 hs 10:23 | |
# vim:ft=sh:fdm=syntax:nu: | |
# autor: Sérgio Luiz Araújo Silva | |
# e-mail: voyeg3r - google mail | |
# site: http://vivaotux.blogspot.com | |
# ( O O ) | |
# +===========oOO==(_)==OOo==============+ | |
# | | | |
# | °v° Sergio Luiz Araujo Silva | | |
# | /(_)\ Linux User #423493 | | |
# | ^ ^ voyeg3r gmail.com | | |
# +======================================+ | |
# faça uma regex para pegar: | |
# protocolo http ou https | |
# servidor uol, oi, google | |
# linguagem no final do nome php, asp, pl | |
# http://www.uol.com.br/index.php | |
# http://www.oi.com.br/recados.asp | |
# https://google/service.pl | |
# minha regex ficou assim: | |
# ^(https?)://(www\.)?([^./]*)[^/]*[^.]*(.*$) | |
# vamos a explicação: | |
# ^(https?) no começo de linha "^" http ou https note que a interrogação torna o 's' opcional (grupo 1) | |
# :// literal isto não nos interessa | |
# (www\.)? pode ou não ter www. agrupei para poder usar a interrogação tornando isto opcional (grupo 2) | |
# ([^./]*) tudo menos uma barra ou ponto pega o servidor (grupo 3) | |
# [^/]* tudo menos uma barra em qualquer quantidade | |
# [^.]* tudo menos um ponto - casa até o último ponto | |
# (.*$) casa com a linguagem (grupo 4) | |
# usando o sed para escrever o resultado | |
cat file | sed -r 's,(https?)://(www\.)?([^./]*)[^/]*[^.]*\.(.*$),protocolo: \1 server: \3 linguagem: \4,g' | |
# No vim habilite o modo "very magic" utilizando \v no começo da busca | |
# /\v(https?)://(www\.)?([^.\/]*)[^\/]*[^.]*\.(.*$) | |
# ou seja a sua regex fica basicamente a mesma, outra coisa é que assim você não tem que | |
# sequer navegar ou baixar qualquer programa para testar sua regex |
Pra finalizar um site pra você testar suas expressões regulares:
http://gskinner.com/RegExr/