0 Compartilhamentos 351 Views

Linux: gere sequências numéricas aleatórias e realize sorteios com o comando “shuf”

3 de outubro de 2016

Que tal falarmos novamente a respeito do Linux? Mais especificamente, sobre comandos? No Bash existem muitos comandos, como você provavelmente já sabe. Alguns podem ser um tanto quanto desconhecidos. Muitos, certamente, são extremamente úteis.

Lembre-se, porém, de que estamos falando também a respeito de algo um tanto quanto relativo, aqui: determinados comandos podem ser mais ou menos desconhecidos, dependendo do perfil e/ou do usuário em questão. É possível, portanto, que você já conheça o comando a respeito do qual falaremos abaixo (bem como a maneira como iremos utilizá-lo).

De qualquer forma, trabalhar com comandos no Linux é também algo geralmente bastante interessante, uma vez que diferentes comandos, sintaxes e argumentos opcionais podem ser combinados de diferentes maneiras, de forma tal a provocar resultados bastante distintos. Resultados estes que, dependendo da situação, podem atender a determinadas necessidades e/ou tarefas, em específico (e caso você já conheça o comando abaixo, não deixe de compartilhar seus conhecimentos conosco).

Comandos Linux

Bem, uma infinidade de tarefas pode ser realizada através de um “simples” cliente SSH, através de comandos:

Digamos, entretanto, que você deseja, ou até mesmo precisa, gerar sequências numéricas aleatórias. Digamos que você deseja gerar uma sequência aleatória com alguns números. Com, digamos, 50 (cinquenta) números, escolhidos aleatoriamente? Ou até mesmo que você deseja realizar um sorteio, para algum concurso que está promovendo, quem sabe?

Uma das alternativas mais fáceis e rápidas (além de grátis), neste caso, seria utilizar o famoso site Random.org. No entanto, para a felicidade dos amantes da linha de comando, existe uma alternativa simples, rápida e extremamente prática, disponível lá mesmo, onde você imaginou: no famoso Shell.

Gerando números aleatórios com o comando shuf

O comando “shuf” permite a geração de sequências numéricas aleatórias de forma bastante prática e rápida. Com ele, você pode realizar tais “sorteios” no próprio SSH, entre suas tarefas diárias de administração, por exemplo. Entre um comando e outro.

O “shuf” também permite que o usuário escolha qual intervalo deverá ser utilizado, qual o range (você pode especificar que deseja apenas números compreendidos entre determinado intervalo).

Veja abaixo a maneira correta de utilizá-lo:

shuf -i [numero inicial]-[numero final] -n [quantidade de resultados]

Obs: repare que o argumento “-i” está ligado ao intervalo numérico propriamente dito, enquanto o “-n” diz respeito à saída, aos resultados, à sequência que será gerada.

Observe também que é necessário especificar o valor desejado para o início da sequência numérica ([numero inicial]), o valor final ([numero final]) e também quantos números deverão ser gerados/sorteados ([quantidade de resultados]).

É bastante fácil. Basta realizar as substituições necessárias no exemplo acima e utilizar o comando no prompt. Por exemplo, para sortear 09 (nove) resultados, aleatoriamente, mesmo, entre os números 550 e 999, utilize a seguinte sintaxe:

shuf -i 550-999 -n 9

Rapidamente, um resultado semelhante ao baixo será exibido no prompt:

[~]# shuf -i 550-999 -n 9
959
721
678
807
933
869
662
924
664

E assim por diante. Lembre-se que a cada nova execução do comando, novas e diferentes sequências numéricas serão geradas. Tudo de forma aleatória.

Obs: é possível gerar um número bem grande de sequências numéricas com o “shuf”. 10, 50, 100, 1000, 5000 números diferentes, em ordens diferentes. O céu é o limite.

Exportando o resultado para um arquivo

E tudo pode ficar ainda melhor. Ao invés do resultado ser exibido na linha de comando, podemos forçar a geração de um arquivo com o mesmo (em um arquivo TXT, por exemplo).

Neste caso, utilize o comando “shuf” da seguinte maneira:

shuf -i [número inicial]-[número final] -n [quantidade de resultados] -o [caminho e nome do arquivo]

Obs: repare na adição do argumento “-o”.

Por exemplo, para gerar um arquivo TXT (chamado resultado.txt) no diretório /home/codigofonte, com 5 (cinco) resultados retirados do intervalo numérico 100 a 200, execute o comando da seguinte maneira:

shuf -i 100-200 -n 5 -o /home/codigofonte/resultado.txt

Após a execução do comando, o arquivo de texto será gerado no local especificado, com 01 (um) resultado por linha.

Finalizando

E assim por diante. Confira abaixo mais exemplos de utilização, e não se esqueça de que também é possível gerar as sequências numéricas aleatórias em um arquivo, conforme exemplo acima.

4 números escolhidos entre o intervalo 1150-2500:

[~]# shuf -i 1150-2500 -n 4
2009
1628
1675
2440

8 números escolhidos entre o intervalo 1-9:

shuf -i 1-9 -n8
2
3
9
7
5
6
1
8

Até a próxima!

Carregando...

Você pode se interessar

Bloqueando robôs do seu site
Artigos
4 visualizações
Artigos
4 visualizações

Bloqueando robôs do seu site

Carlos L. A. da Silva - 6 de agosto de 2020

Nem todo robô que visita seu site é bonzinho como o do Google... aprenda a se defender!

Como encriptar seu dispositivo móvel
Dicas
13 visualizações
Dicas
13 visualizações

Como encriptar seu dispositivo móvel

Carlos L. A. da Silva - 4 de agosto de 2020

Privacidade nunca é demais e ela pode estar na palma da sua mão, sem dificuldades. Aprenda a encriptar dispositivos Android, iOS e até Windows Phone.

Aposente essas DIVs: aprenda a estruturar semanticamente seu HTML 5
Artigos
19 visualizações
Artigos
19 visualizações

Aposente essas DIVs: aprenda a estruturar semanticamente seu HTML 5

Carlos L. A. da Silva - 2 de agosto de 2020

Ano da graça de 2020 e você ainda não aprendeu a separar o conteúdo semanticamente? Taca DIV em tudo? Hora de mudar os velhos hábitos...

Deixe um Comentário

Your email address will not be published.

Mais publicações

Promoções de Jogos do Final de Semana (31/07)
Notícias
20 visualizações
20 visualizações

Promoções de Jogos do Final de Semana (31/07)

Carlos L. A. da Silva - 31 de julho de 2020
Quem está lucrando com os aplicativos de entrega? Ninguém
Artigos
24 visualizações1
24 visualizações1

Quem está lucrando com os aplicativos de entrega? Ninguém

Carlos L. A. da Silva - 28 de julho de 2020
Como ditar um documento (Office, Google Docs, OpenOffice)
Dicas
21 visualizações
21 visualizações

Como ditar um documento (Office, Google Docs, OpenOffice)

Carlos L. A. da Silva - 27 de julho de 2020
Promoções de Jogos do Final de Semana (24/07)
Notícias
29 visualizações
29 visualizações

Promoções de Jogos do Final de Semana (24/07)

Carlos L. A. da Silva - 24 de julho de 2020