0 Compartilhamentos 217 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

Promoções de Jogos do Final de Semana (06/12)
Notícias
13 visualizações
Notícias
13 visualizações

Promoções de Jogos do Final de Semana (06/12)

Carlos L. A. da Silva - 6 de dezembro de 2019

Confira as melhores ofertas de jogos de PC para o final de semana.

Como bloquear trolls no Twitter em larga escala
Dicas
13 visualizações
Dicas
13 visualizações

Como bloquear trolls no Twitter em larga escala

Carlos L. A. da Silva - 4 de dezembro de 2019

Ninguém está livre de cair na mira de uma horda virtual e saber se defender é fundamental.

Conheça a diferença entre Inteligência Artificial, Aprendizado de Máquina e Aprendizado Profundo
Artigos
20 visualizações
Artigos
20 visualizações

Conheça a diferença entre Inteligência Artificial, Aprendizado de Máquina e Aprendizado Profundo

Carlos L. A. da Silva - 30 de novembro de 2019

Na linguagem coloquial, esses termos até se confundem mas, tecnicamente, não são a mesma coisa.

Mais publicações

Como aproveitar ao máximo a Área de Transferência do Windows 10
Dicas
19 visualizações
19 visualizações

Como aproveitar ao máximo a Área de Transferência do Windows 10

Carlos L. A. da Silva - 28 de novembro de 2019
Tudo que você precisa saber sobre o USB4
Artigos
45 visualizações
45 visualizações

Tudo que você precisa saber sobre o USB4

Carlos L. A. da Silva - 25 de novembro de 2019
Promoções de Jogos do Final de Semana (22/11)
Notícias
21 visualizações
21 visualizações

Promoções de Jogos do Final de Semana (22/11)

Carlos L. A. da Silva - 22 de novembro de 2019