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

DICA EXTRA: Prepare seu Currículo de Programador // Vlog #53.1
Vídeos
17 visualizações
Vídeos
17 visualizações

DICA EXTRA: Prepare seu Currículo de Programador // Vlog #53.1

Gabriel Fróes - 9 de outubro de 2017

No último vídeo do canal demos algumas dicas sobre como preparar seu currículo para uma vaga de programador mas esquecemos de uma dica super importante que falaremos nesse vídeo.

Confira os principais trailers da New York Comic Con 2017
Notícias
27 visualizações
Notícias
27 visualizações

Confira os principais trailers da New York Comic Con 2017

Carlos L. A. da Silva - 9 de outubro de 2017

Festa dos quadrinhos foi palco de trailers de mega-produções do cinema e séries de TV: Liga da Justiça, The Walking Dead e novo Círculo de Fogo. Confira!

Google teria encontrado indícios de anúncios patrocinados pelo governo russo em sua plataforma
Notícias
9 visualizações
Notícias
9 visualizações

Google teria encontrado indícios de anúncios patrocinados pelo governo russo em sua plataforma

Carlos L. A. da Silva - 9 de outubro de 2017

Segundo o jornal The Washington Post, empresa teria começado sua investigação depois de casos similares no Twitter e no Facebook.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Executivo da Microsoft confirma desinteresse no Windows Phone
Notícias
28 visualizações
28 visualizações

Executivo da Microsoft confirma desinteresse no Windows Phone

Carlos L. A. da Silva - 9 de outubro de 2017
Elon Musk critica Google Clips
Notícias
26 visualizações
26 visualizações

Elon Musk critica Google Clips

Carlos L. A. da Silva - 9 de outubro de 2017
Michel Temer vetou emenda que poderia censurar a internet
Notícias
26 visualizações
26 visualizações

Michel Temer vetou emenda que poderia censurar a internet

Carlos L. A. da Silva - 9 de outubro de 2017