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: Fernando Mercês
Subject: Re: [shell-script] Pegar apenas a URL
Date: Thu, 29 Sep 2011 12:50:24 -0300

Rodrigo, eu me expressei mal. O que queria dizer é se teria como o comando
ficar genérico  (.net, .org etc). De fato, acho que o autor da thread já
resolveu o problema dele. Só estou continuando essa thread como desafio
mesmo. :)

Abração!

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/29 Rodrigo Boechat <address@hidden>

> **
>
>
> Obrigado. :)
>
> Beleza. Atualizei o PasteBin.
>
> Abração!
>
> Em Qui 29 Set 2011 12:04:05 BRT, Fernando Mercês escreveu:
>
> > Belo trabalho! :)
> >
> > Muito legal usar o rev aí.
> >
> > Daria pra adaptar pra funcionar com endereços do tipo "
> http://www.linux.net";
> > ? Acho que só falta isso pra ficar perfeito.
> >
> > Abração!
> >
> > 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/29 Rodrigo Boechat<address@hidden>
> >
> >> **
> >>
> >>
> >> Entendi. Boa colocação.
> >> Eu segui modelo do exemplo inicial em que todas as urls possuíam "www.".
> >> No caso o que gerou o erro foi meu segundo cut, que quando a linha não
> >> possuir "www." deveria ser realizado com a opção "-f1-".
> >>
> >> Bem. Consegui arrumar o cut usando o esquema com o rev.
> >> http://pastebin.com/Fa4XYqz2
> >>
> >> Aqui deu certo para mim.
> >> O resultado é o esperado; acredito.
> >>
> >> Espero finalmente ter ajudado. :)
> >> Abração!
> >>
> >> Em 28-09-2011 21:06, Fernando Mercês escreveu:
> >>
> >>> Rodrigo, acho que o caminho é esse. Mas ainda não tá 100%. Veja só:
> >>>
> >>> $ echo http://unix.com | cut -d'.' -f2- | sed
> >>> 's/\([a-zA-Z0-9]*\.\)\([a-zA-Z0-9]*\.co.\.*\)/\2/'
> >>> com
> >>>
> >>> Tem que se levar o número de pontos (.) na URL em consideração, para
> >> saber
> >>> se estamos tratando de um subdomínio ou não. Eu acabei fazendo uma
> função
> >>> que, parece, resolve o problema [1]. Pelo menos com os meus testes
> aqui,
> >> deu
> >>> certo:
> >>>
> >>> $ for i in $(cat urls.txt); do echo -n "$i -> "; ./url.sh $i; done
> >>> http://www.globo.com -> globo.com
> >>> http://www.globo.com/ -> globo.com
> >>> https://www.globo.com/ -> globo.com
> >>> http://globo.com -> globo.com
> >>> http://globo.com/ -> globo.com
> >>> http://blog.globo.com/ -> globo.com
> >>> http://blog.globo.com -> globo.com
> >>> http://blog.globo.com.br -> globo.com.br
> >>> http://blog.globo.com.br/testes/lalala/html/oi.html -> globo.com.br
> >>> http://www.globo.com/asp.php -> globo.com
> >>> http://www.unix.com/lele/lili -> unix.com
> >>> http://unix.com/nada -> unix.com
> >>> http://mail.unix.com -> unix.com
> >>>
> >>> [1] http://pastebin.com/KeLmaMzt
> >>>
> >>> 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 Rodrigo Boechat<address@hidden>
> >>>
> >>>> **
> >>>>
> >>>>
> >>>> 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
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>> [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
> >>> ----------------------------------------------------------
> >>> 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
> >>>
> >>>
> >>>
> >>
> >> [As partes desta mensagem que não continham texto foram removidas]
> >>
> >>
> >>
> >
> >
> > [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
> > ----------------------------------------------------------
> > 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
> >
> >
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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