0 Compartilhamentos 206 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!

Você pode se interessar

Vídeos
1,655 compartilhamentos6,804 visualizações

Reagindo a Vagas de Estágio // Vlog React #91

Thais Cardoso de Mello - 21 de março de 2019

Confira no vídeo se o que dizem sobre os estágio no Brasil realmente faz sentido.

A Inteligência Artificial que era perigosa demais
Artigos
3 visualizações
Artigos
3 visualizações

A Inteligência Artificial que era perigosa demais

Carlos L. A. da Silva - 21 de março de 2019

A estranha história da pesquisa que precisou ser engavetada por um bom motivo...

TypeScript // Dicionário do Programador
Vídeos
1,655 compartilhamentos6,808 visualizações
Vídeos
1,655 compartilhamentos6,808 visualizações

TypeScript // Dicionário do Programador

Thais Cardoso de Mello - 18 de março de 2019

TypeScript é o termo falado nesse Dicionário do Programador, conheça mais sobre o assunto.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Promoções de Jogos do Final de Semana (15/03)
Notícias
11 visualizações
11 visualizações

Promoções de Jogos do Final de Semana (15/03)

Carlos L. A. da Silva - 15 de março de 2019
Mega Bate-Papo com o Programador BR (feat. Igor Oliveira) // CDF Entrevista
Vídeos
1,655 compartilhamentos6,812 visualizações
1,655 compartilhamentos6,812 visualizações
World Wide Web completa 30 anos!
Notícias
13 visualizações
13 visualizações

World Wide Web completa 30 anos!

Carlos L. A. da Silva - 12 de março de 2019
Ada Lovelace: o cérebro que nunca morre
Artigos
134 visualizações1
134 visualizações1

Ada Lovelace: o cérebro que nunca morre

Carlos L. A. da Silva - 12 de março de 2019