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

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

Re: [Bulk] Re: [Bulk] Re: [shell-script] Re: [OT] mega-sena com shell


From: Alfredo Casanova
Subject: Re: [Bulk] Re: [Bulk] Re: [shell-script] Re: [OT] mega-sena com shell
Date: Fri, 02 Jan 2015 13:06:52 +0000

Aproveitando o tópico, tem um script aqui que fiz pra conferir os jogos da megasena
O que você precisa fazer é só criar um arquivo com seus jogos, no seguinte modelo
$ cat palpites
21 22 26 48 52 54
10 19 28 34 35 38 51
07 18 30 31 41 42 45 51

e depois invoca-lo assim:
$ ./confere palpites 01 05 11 16 20 56

o código precisa de uma refatoração, fui fazendo e depois incluindo outras coisas, depois adicionando tags html... ficou meio bagunçado:

#!/bin/bash
[ $# -ne 7 ] && { echo "USO: $0 <arquivo com um jogo por linha> <dezenas do resultado>"; exit 1; }

file=$1
shift
result="$*"
busca=${result// /|}

echo "<br><br><h1>Conferindo <b>${file##*/}</b></h1>"

while read line
do
hits=0
for i in $result
do
grep -qo $i <<< $line && { let hits++;  line=$(sed "s/$i/\<b\>\<font color=red\>$i\<\/font\>\<\/b\>/g" <<< $line); }
done
[ $hits -gt 0 ] && echo "<br>$line"
[ $hits -ge 4 ] && {
echo "<br>";
[ $hits -eq 6 ] && {
echo -n "<h1><font color=green>Va cagar na mesa do chefe!</font></h1>";
echo "<h1>$line: $hits acertos</h1>";
} || echo "<h1>$line: $hits acertos</h1>";
} || [ $hits -eq 0 ] && echo "<br>$line<br><b><font color=blue>Nada!</b></font><br>" || {
[ $hits -lt 4 ] && echo "<br><b><font color=blue>Acertou so $hits</b></font><br>";
}
done < $file

aí pra automatizar eu fiz esse aqui, que já pega o resultado do sorteio direto do site da caixa:


#!/bin/bash
wget -qOout http://www1.caixa.gov.br/loterias/loterias/megasena/megasena_pesquisa_new.asp
args=$(grep -Eo "<li>[0-9]{2}</li>" out | head -6 | sed 's/<[^>]*>//g' | sort -n | sed ':a;$!N;s/\n/ /;ta;')
sorteio=$(cut -c1-4 out)
data="" -Eo "([0-9]{2}/){2}[0-9]{4}" out | head -1)
rm out

#mudar o número do sorteio para o sorteio desejado:
[ $sorteio -eq 1665 ] && ./confere palpites $args


se alguém quiser melhorar o código, a vontade!

On Fri Jan 02 2015 at 12:24:15 AM 'Julio C. Neves' address@hidden [shell-script] <address@hidden> wrote:
 

A última informação que tive da editora é que o livro iria para as livrarias na 2a. quinzena desse mês. Depois dele vou ficar um bom tempo sem publicar outra edição.


Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 09 a 13/03/15
São Paulo 4Linux 24 a 28/11/14
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 1 de janeiro de 2015 14:02, Sidney Souza address@hidden [shell-script] <address@hidden> escreveu:


 

Grande Julio,

De fato me passou despercebido porque executei os comandos no windows e ele deve ter interpretado o caracter.
Aproveitando a deixa, o software utilizado foi o mobaxterm, uma excelente ferramenta, que gosto muito por sinal e me ajuda a ter menos remorso, que proporciona o melhor do Linux dentro do sistema M$.

Um grande abraço e não esqueça de avisar quando posso comprar seu livro, pois estou ansioso kkk.


------------------------------------------------------
http://www.politicos.org.br

2015-01-01 13:03 GMT-02:00 'Julio C. Neves' address@hidden [shell-script] <address@hidden>:
 

Fala Sidney,
eu vi que tinha muito grep e sed misturado, mas a ressaca está tão danada que não tive saco de otimizar, exceto tirando o cat arq | grep, ao qual sou alérgico ;) Mas acho que ninguém notou (eu notei pq estava dando zebra no zenity) que cada linha gerada termina com 2 carriage return ^M. Assim sendo, incluiria mais uma perninha no sed, ficando assim:

grep -E -a -A 6 '[0-9]{2}/[0-9]{2}/[0-9]{4}' D_MEGA.HTM | sed -r 's/<[^>]*>//g; /\/|--/d;s/\r//g' | sort | uniq -c | sort

Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 09 a 13/03/15
São Paulo 4Linux 24 a 28/11/14
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 31 de dezembro de 2014 14:09, Sidney Souza address@hidden [shell-script] <address@hidden> escreveu:
 

Usando o sed eu cheguei nesta solução

grep -E -a -A 6 '[0-9]{2}/[0-9]{2}/[0-9]{4}' D_MEGA.HTM | sed -r 's/<[^>]*>//g; /\/|--/d;' | sort | uniq -c | sort



------------------------------------------------------
http://www.politicos.org.br

2014-12-31 12:04 GMT-02:00 address@hidden [shell-script] <address@hidden>:
 


Eu por exemplo não tenho html2text, mas pode usar

- links -dump
- lynx -dump -nolist
w3m -dump -T 'text/html'

e qq um deles pipear por exemplo com esse trecho em awk, para lista um número por linha:

awk '/[0-9]\/[0-9]/ {for (i=3;i<=8;i++) printf "%s\n", $i }'



ou esse para já ordenar e eliminar a sequência "sort | uniq -c | sort":

awk '/[0-9]\/[0-9]/ {for (i=3;i<=8;i++) numero[$i]++} END {for (num in numero) print numero[num], num | "sort"  }'






reply via email to

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