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

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

[shell-script-pt] Fwd: [shell-script] Ajuda em script mega-sena


From: Alfredo Casanova
Subject: [shell-script-pt] Fwd: [shell-script] Ajuda em script mega-sena
Date: Tue, 10 Mar 2020 17:26:18 -0300

Encaminhando para a nova lista, nao vi que foi pra antiga

---------- Forwarded message ---------
From: Alfredo Casanova <address@hidden>
Date: Tue, Mar 10, 2020 at 5:14 PM
Subject: Re: [shell-script] Ajuda em script mega-sena
To: Shell Script <address@hidden>


Tenho um pronto pra usar via web, vou mandar aqui (fiz ha mto tempo e nao atualizei)
$ cat conferindo
#!/bin/bash
#numero do sorteio alvo da mega-sena
alvo=2231 

# consulta concurso mais recente
wget -qOout http://www1.caixa.gov.br/loterias/loterias/megasena/megasena_pesquisa_new.asp

#pega os numeros do sorteio e armazena na variavel args
args=$(cat out | grep -Eo "<li>[0-9]{2}</li>" | head -6 | sed 's/<[^>]*>//g' | sort -n | sed ':a;$!N;s/\n/ /;ta;')

# pega o numero do concurso
sorteio=$(cat out | cut -c1-4)
data="" out | grep -Eo "([0-9]{2}/){2}[0-9]{4}" | head -1)
rm out

function conferidor {
sorteio=$1
data=""> shift 2
numeros=$*
echo "<br><br>"
for i in /opt/megasena/palpites_*
do
echo "Sorteio: <b>$numeros</b>":
/opt/megasena/confere $i $numeros
echo "<br><br>"
done

}
echo "<br>Conferindo resultado do concurso <b>$sorteio</b> realizado em <b>$data</b>: <h1>$args</h1>"
[ $sorteio -eq $alvo ] && conferidor $sorteio $data $args || echo "<br>Ainda nao saiu o sorteio $alvo!"


$ cat confere
#!/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
# echo "<br><br>Jogo: $line"
hits=0
for i in $result
do
# marca os numeros acertados com a cor vermelha
[[ $(grep -o $i <<< $line) ]] && { let hits++;  line=$(sed "s/$i/\<b\>\<font color=red\>$i\<\/font\>\<\/b\>/g" <<< $line); }
done
[ $hits -gt 0 ] && echo "<br>$line"
# se acertar ao menos a quadra
[ $hits -ge 4 ] && {
# Será que foi a sena?
echo "<br>";
[ $hits -eq 6 ] && {
echo -n "<h1><font color=green>Tá rico!</font></h1>";
grep --color -E "$busca" <<< "<h1>$line: $hits acertos</h1>";
} || grep --color -E "$busca" <<< "<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 só $hits</b></font><br>";
}
done < $file


Pra usar, basta criar um arquivo com o nome "palpites_algumaString" na pasta onde estao os scripts.

On Tue, Mar 10, 2020 at 3:37 PM 'Julio C. Neves' address@hidden [shell-script] <address@hidden> wrote:
 

# Recebendo resultados
for ((Res=1; Res<=6; Res++))
{
    read -p "$Res⁰ resultado: "
    Result[Res-1]=$(printf '%02i\n' $REPLY)
}

clear
printf '%23s %02d %02d %02d %02d %02d\n' "${Result[@]}"

# Apuração
while read -a Jogo
do
    unset Certos
    for ((i=0; i<=5; i++))
    {
        ((10#${Jogo[i]} == 10#${Result[i]})) && Certos[i]=${Jogo[i]} || Certos[i]=--
    }
    echo ${Jogo[@]} ++ ${Certos[@]}
done < jogos.txt

Melhorei (para o meu gosto) a apresentação, mas ela ficaria muito melhor usando zenity ou, muito melhor ainda, usando yad.

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» Em 27/01/2020 abriremos uma semana de inscrições
» para uma nova turma. Veja mais detalhes em:

Também damos treinamento em sua empresa
em qualquer cidadecom certificado e nota fiscal.







Em ter., 10 de mar. de 2020 às 12:12, Dito Ramos address@hidden [shell-script] <address@hidden> escreveu:
 

Mestres, bom dia.
Estou mexendo num "scriptzinho" aqui, para conferir apostas na mega-sena.
Segue o script, o arquivos jogos.txt (onde eu incluo os números das apostas que fiz) e a saída do script:

O script confmega.sh
================
#!/bin/bash
while read line
do
hits=0;
for numero in $*
do
if [ $(grep -o $numero <<< $line | wc -l) -eq 1 ]
then
let hits++;
fi
done
if [ $hits -ge 0 ]
then
echo $line: $hits acertos
fi
done < jogos.txt

O arquivo jogos.txt:
==============
06 14 37 48 54 58
12 17 34 46 57 59
02 12 23 26 45 49
03 17 23 40 53 57
05 07 13 37 39 46
03 10 17 28 37 57
07 24 37 39 50 57
08 11 33 36 44 49
01 14 26 28 36 47
04 09 26 29 47 48
12 16 23 33 53 54
11 25 27 37 40 43

A saída do comando ./confmega.sh 11 20 27 28 53 60 (resultado oficial do concurso):
==============================================================
06 14 37 48 54 58: 0 acertos
12 17 34 46 57 59: 0 acertos
02 12 23 26 45 49: 0 acertos
03 17 23 40 53 57: 1 acertos
05 07 13 37 39 46: 0 acertos
03 10 17 28 37 57: 1 acertos
07 24 37 39 50 57: 0 acertos
08 11 33 36 44 49: 1 acertos
01 14 26 28 36 47: 1 acertos
04 09 26 29 47 48: 0 acertos
12 16 23 33 53 54: 1 acertos
11 25 27 37 40 43: 2 acertos

Está funcionando certinho. Mas preciso implementar mais uma informação na saída para ficar da seguinte forma:

06 14 37 48 54 58: 0 acertos
12 17 34 46 57 59: 0 acertos
02 12 23 26 45 49: 0 acertos
03 17 23 40 53 57: 1 acertos (acertou 53)
05 07 13 37 39 46: 0 acertos
03 10 17 28 37 57: 1 acertos (acertou 28)
07 24 37 39 50 57: 0 acertos
08 11 33 36 44 49: 1 acertos (acertou 11)
01 14 26 28 36 47: 1 acertos (acertou 28)
04 09 26 29 47 48: 0 acertos
12 16 23 33 53 54: 1 acertos (acertou 53)
11 25 27 37 40 43: 2 acertos (acertou 11, 27)

Já tentei aqui e não estou conseguindo.
Podem dar uma força?
Grato desde já.

Dito Ramos

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

__._,_.___

Enviado por: "Julio C. Neves" <address@hidden>
Responder através da web através de email Adicionar um novo tópico Mensagens neste tópico (2)
---------------------------------------------------------------------
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


.

__,_._,___


--
[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619


--
[]'s
Alfredo Tristão Casanova .͘.
Linux User #228230
tel: +55 61 9655 9619

reply via email to

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