Meu amigo MrBits me deu essa grande ideia:
#!/bin/bash
QTDE=20
CHARSET=UTF-8
GROUP=shell-script
while getopts g:c:q: OPTION ; do
case $OPTION in
g) GROUP=$OPTARG ;;
c) CHARSET=$OPTARG ;;
q) QTDE=$OPTARG ;;
esac
done
shift $(($OPTIND -1))
SEARCH="$@"
if [ -z "$SEARCH" ]; then
echo "Usage: $(basename $0) [-q qtde] [-g grupo] [-c charset] search"
exit 1
fi
BASEURL="http://br.groups.yahoo.com/group"
URL="${BASEURL}/${GROUP}/msearch?submit=OK&charset=${CHARSET}&cnt=${QTDE}&query=${SEARCH// /+}"
SEDCMD="/message/!d;/${GROUP}/!d;/.*[0-9]/!d;s#/group#${BASEURL}#g;s/<[^>]*span>//g;s/$/<br \/>/"
LYNXOPT="-dump -force_html -assume_charset=${CHARSET}"
lynx $LYNXOPT <( curl -b /tmp/cookie$$ -sL "${URL}" | sed "${SEDCMD}" )
Vejamos em uso:
$ ./find.sh
Usage: find.sh [-q qtde] [-g grupo] [-c charset] search
$ ./find.sh -q 10 getopts # procurando por getopts limitando a 10 registros
[1]Re: [shell-script] Script de busca de mensagens
[2]Re: [shell-script] Re: script iterativo / passo a passo
[3]Re: [shell-script] Script de Backup
[4]Re: [shell-script] Script de Backup
[5]Re: [shell-script] Script de Backup
[6]Re: [shell-script] Script de Backup
[7]Re: [shell-script] Echo e executa: superecho
[8]Re: [shell-script] testar se parametro $1 foi passado
[9]Re: [shell-script] Echo e executa: superecho
[10]Re: [shell-script] testar se parametro $1 foi passado
References
1. http://br.groups.yahoo.com/group/shell-script/message/26373
2. http://br.groups.yahoo.com/group/shell-script/message/26204
3. http://br.groups.yahoo.com/group/shell-script/message/26078
4. http://br.groups.yahoo.com/group/shell-script/message/26076
5. http://br.groups.yahoo.com/group/shell-script/message/26075
6. http://br.groups.yahoo.com/group/shell-script/message/26072
7. http://br.groups.yahoo.com/group/shell-script/message/25742
8. http://br.groups.yahoo.com/group/shell-script/message/25720
9. http://br.groups.yahoo.com/group/shell-script/message/25719
10. http://br.groups.yahoo.com/group/shell-script/message/25718
Divertido, não? o default é procurar no grupo shell-script do yahoo, mas ele pode investigar em qualquer um.
Valeu Mr.Bits!!
6 comentários:
Tiago, tu ta ficando cada vez pior cara. Já pensou em dar um tempo e programar um pouco em Visual Basic?
hehe.. muito bom!
VB ? NUNCA!!!
Mas ja fiz coisas com VBScript... :$
Putz Tiago ! Você tá ficando muito louco mesmo, deve ser o sol ai do Rio ... não é possível !
Estes comandos de sed são de arrepiar, um dia ainda vou entender isso "nativo".
flw e sucesso!
Mas é facil, Roger!
/padrão/!d -> apaga *todas* as linhas que *não* casam com o padrão
s/padrão/substituição/g -> substitui, globalmente, o padrão pela substituição
s#xxx#yyy#g -> mesma coisa, util para não ter que escapar o caracter /
\o/
É por isso que bash é a melhor coisa de todo o universo!!!
Hahaha... te amarrou, gc?
Podes usar pra pesquisar no rioguj ;-)
Postar um comentário