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

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

Re: [shell-script] Pegar apenas a URL


From: Rodrigo Boechat
Subject: Re: [shell-script] Pegar apenas a URL
Date: Wed, 28 Sep 2011 20:39:12 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2

Bem. Eu cheguei a isso:

arquivo="$HOME/teste.txt"

cat - >> "$arquivo" <<EOF
http://www.unix.com/shell-programming-scripting/36565-exit-shell-script.html
http://www.bla.com.br/ble/bli.htm
http://www.cla.com.br/cle/cli.htm
http://www.sub1.dla.com/dle/dli.htm
http://www.sub2.ela.co.uk/ele/eli.htm
EOF

cut -f3 -d'/' $arquivo | cut -d'.' -f2- | sed 's/\([a-zA-Z0-9]*\.\)\([a-zA-Z0-9]*\.co.\.*\)/\2/'

Explicando o cut:
-d = seta o delimitador de campos
-f = seta quais campos você vai pegar :: 2- significa do segundo em diante, lembrando que o primeiro campo é o zero. Colocando o menos na frente do dois [-f-2], você obtém do zero até o segundo.

Explicando o sed:
s/// = substituição

\( e \) = criam separações endereçadas de 1 a 9 [se não me engano] num bloco de padrao que você esteja procurando. Então eu criei duas separações '\([a-zA-Z0-9]*\.\)' e '\([a-zA-Z0-9]*\.co.\.*\)'. A primeira busca por qualquer conjunto de letras e números misturados terminados por ponto. A segunda busca por qualquer conjunto de letras e números misturados terminados por ".co*.*". Obs: Usei co*. porque me lembrei que o domínio inglês, por exemplo é "co.uk". Obs2: O povo não gosta de usar o ponto em expressões, portanto a poarte "[a-zA-Z0-9]*\.co.\.*" poderia, também, ser escrita assim: "[a-zA-Z0-9]*\.co[a-z]\.*".

Por fim, ao invés de substituir o comando \2\ diz para o s/// escrever o conteúdo da segunda separação, no caso, tudo que o "[a-zA-Z0-9]*\.co.\.*" abranger.

Tentei ser o mais claro possível. Se eu me enrolei em alguma explicação eu mesmo errei alguma coisa, sintam-se à vontade para corrigir.

Espero ter ajudado.
Rodrigo Boechat

Em Qua 28 Set 2011 18:55:31 BRT, Fernando Mercês escreveu:

Mas e como pegar o domínio independente da URL conter um subdomínio ou
não?

Por exemplo, para todas as entradas abaixo, a saída deveria ser
somente "unix.com":

www.unix.com/lele/lili
unix.com/nada
mail.unix.com

Eu tentei com o sed aqui e não consegui. Seria uma boa função para
somar às funções zz. :)

Abraços.

Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
softwarelivre-rj.org
@MenteBinaria
------------------------------------
Participe do I Hack'n Rio
hacknrio.org
------------------------------------

2011/9/28 Rodolpho Costa Stach <address@hidden
<mailto:dukercs%40gmail.com>>:
> hum vou estudar :D $man cut
> vlw cara
>
> por enquanto o script tá assim
>
>
> # Script para adicionar site à lista branca
> # Criado em 28/09/2011
> # Autor: Rodolpho Costa Stach
> #!/bin/bash
> versao="1.0.1b"
>
> fpath="/etc/squiddir/listabranca.txt"
>
> testapath(){
> if [ -e $fpath ]; then
> args
> else
> echo -e "\e[31;1m ERRO: "
> echo -e "\e[37;1m O arquivo de lista não foi localizado em
$fpath."
> echo -e "\e[37;1m Use $0 --novalista para definir o novo local do
> arquivo"
> sair
> fi
> }
>
> sair(){
> exit 1
> }
>
> args(){
> if [ "$1" = "" ];then
> echo -e "\e[31;1m ERRO: "
> echo -e "\e[37;1m Use $0 + domínio do site a ser liberado."
> sair
> else
> contar
> fi
> }
>
> contar(){
> count=$(grep -c $1 $fpath)
> if [ $count >= 1 ]; then
> echo -e "\e[31;1m ERRO: "
> echo -e "\e[37;1m Este domínio já existe cadastrado"
> else
> echo $1 >> $fpath
> fi
> }
> ajuda(){
> echo -e "\e[40;32;1mAjuda"
> echo -e "\e[40;37;1mUse o $0 para adicionar somente o domínio à
> lista branca de sites."
> echo -e "\e[40;31mOpções: "
> echo -e -n "\e[40;32;1m--help --ajuda -h "
> echo -e "\e[40;37;1mExibe essa tela de ajuda"
> echo -e -n "\e[40;32;1m--novalista "
> echo -e "\e[40;37;1mAltera o arquivo da lista branca para o
arquivo
> informado"
> echo -e "\e[40;31;1mUSE: $0 --novalista
> /caminho/completo/para/a/novalista.txt"
> echo -e ""
> }
> case "$1" in
> --help|-h|--ajuda)
> ajuda ;;
> --novalista)
> echo "Ainda irei estudar como fazer isso :D "
> echo "Você entrou com o caminho"
> ;;
> *)
> testapath
> ;;
> esac
>
>
>
>
> Em 28 de setembro de 2011 17:49, Moacir Souza
<address@hidden <mailto:moacir.souza%40gmail.com>>escreveu:
>
>> **
>>
>>
>> Outro cut..
>>
>> $ cut -d "." -f 2-
>>
>> 2011/9/28 Rodolpho Costa Stach <address@hidden
<mailto:dukercs%40gmail.com>>:
>>
>> > Sim mas com esse delimitador está saindo o www. tem como tirar ele ?
>> >
>> > Em 28 de setembro de 2011 17:10, Marcelo Andrade
<address@hidden <mailto:mfandrade%40gmail.com>
>> >escreveu:
>> >
>> >> **
>> >>
>> >>
>> >> 2011/9/28 Rodolpho Costa Stach <address@hidden
<mailto:dukercs%40gmail.com>>
>> >> >
>> >> > Gente estou ainda criando o danado do script para adicionar
sites em
>> uma
>> >> > lista branca nisso pensei em controle de erro e gostaria de
caso eu
>> >> coloque
>> >> > um site como
>> >> >
>> >>
>>
http://www.unix.com/shell-programming-scripting/36565-exit-shell-script.htmlem
>> >> > uma variável que eu pegue só o
>> >> > unix.com ou se fosse .com.br pegasse só o unix.com.br para que eu
>> possa
>> >> > testar se esse domínio já não existe.
>> >>
>> >> Um cut -f3 -d'/' não resolve?
>> >>
>> >> Atts.
>> >>
>> >> --
>> >> MARCELO F ANDRADE
>> >> Belem, Amazonia, Brazil
>> >>
>> >> "I took the red pill"
>> >>
>> >>
>> >>
>> >
>> >
>> > [As partes desta mensagem que não continham texto foram removidas]
>> >
>> >
>> >
>> > ------------------------------------
>>
>> >
>> > ----------------------------------------------------------
>> > 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
<mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
>> > ----------------------------------------------------------
>> > Esta lista é moderada de acordo com o previsto em
>> http://www.listas-discussao.cjb.net
>> > ----------------------------------------------------------
>> > Servidor Newsgroup da lista: news.gmane.org
>> > Grupo: gmane.org.user-groups.programming.shell.brazil
>> >
>> > Links do Yahoo! Grupos
>> >
>> >
>> >
>>
>> --
>> ==========================================
>> Moacir da Cruz Souza Filho
>>
>> Analista de Sistemas: Suporte Unix Avançado
>> Mestrando em Ciências da Computação
>> Bacharel em Engenharia da Computação
>> Técnico em Eletrônica
>> Linux user #449600
>> ==========================================
>>
>>
>>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ----------------------------------------------------------
> 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
<mailto:shell-script-unsubscribe%40yahoogrupos.com.br>
> ----------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ----------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>




reply via email to

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