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

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

[shell-script-pt] Gerar numeros aleatórios e comparar com BD


From: Dito Ramos
Subject: [shell-script-pt] Gerar numeros aleatórios e comparar com BD
Date: Sat, 02 Jul 2022 14:53:22 -0300

Mestres, boa tarde.
Fiz um script em bash para gerar números aleatórios, para aposta na megasena.
Ex. de uso:

#./gerajogos.sh 3 6, onde $1 é a qtd de jogos e $2 a qtde de dezenas.

Ex. saida:

14 17 23 39 57 58
02 16 24 38 49 56
03 15 26 36 37 41

O resultado é gravado no arquivo jogos.tx

Tenho um BD atualizado, tipo .txt com todos os resultados dos sorteios até 
agora, no seguinte formato:

1 - 11/03/1996 - 04 05 30 33 41 52 - 0,00 - 0
2 - 18/03/1996 - 09 37 39 41 43 49 - 2.307.162,23 - 1
3 - 25/03/1996 - 10 11 29 30 36 47 - 391.192,51 - 2
...
...
2494 - 25/06/2022 - 01 04 10 22 53 54 - 78.763.087,85 - 1
2495 - 28/06/2022 - 08 12 14 30 33 41 - 0,00 - 0

Onde as dezenas sorteadas dos prêmios estão no campo 3 da tabela.

Pois bem. Preciso da ajuda dos mestres para o seguinte:
No script que gera os jogos aleatórios, incluir as seguintes condições:
1 - Quando gera as dezenas para aposta, verificar se cada uma já existe na 
relação que está sendo gerada. Se não existir, armazena e prossegue com o laço, 
gerando as demais, de modo que não se repita jogos.
2 - Comparar se o jogo que está sendo gerado com o BD de resultados. Em caso de 
existir Se não existir, armazena e prossegue com o laço, gerando as demais, de 
modo que não se repita jogos.

RESUMINDO: Os jogos não podem ser repetidos, nem coincidirem com resultado já 
sorteado.
Já tentei de tudo aqui, mas não cheguei a uma solução.

Segue o script gerajogos.sh para avaliação.

Grato desde já.

#!/bin/bash
rm jogosformatado.txt jogosformatado1.txt jogos.txt
qtdjogos=$1
qtddezenas=$2
metadeqtddezenas=$(echo "$qtddezenas"/2 | bc)
dezezenasasereremexcluidas=$(shuf -i 1-$qtddezenas -n 1)
n=1
while (( $n <= $qtdjogos ))
do
        if [ $n -lt 10 ]
                then
                echo -n "Jogo "0"$n: "
        else
                echo -n "Jogo $n: "     
        fi
        n=$(( n+1 ))
        jogos1a30=$(shuf -i 1-30 -n $metadeqtddezenas | tr -d ',e' | tr -s ' ' 
| sed 's/ / \n/g' | sort -n | while read a; do printf '%02d ' $a ; done)
        jogos31a60=$(shuf -i 31-60 -n $metadeqtddezenas | tr -d ',e' | tr -s ' 
' | sed 's/ / \n/g' | sort -n | while read a; do printf '%02d ' $a ; done)
        echo $jogos1a30 $jogos31a60
        done >> jogosformatado.txt
        cat jogosformatado.txt | awk '{$1="";$2=""; print $0}' | sed 's/^ \+//' 
> jogosformatado1.txt
        cp jogosformatado1.txt jogos.txt
        chown www-data jogos.txt
        chgrp www-data jogos.txt
        cat jogos.txt


reply via email to

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