você está aqui: Home  → Arquivo de Mensagens

Ebook Gratuito: Dá para fazer em Shell?, com o Prof. Julio Neves

Ordenação aleatória das linhas de um arquivo

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 04 de outubro de 2012

Recentemente eu precisei fazer a divisão de uma equipe de trabalho de forma aleatória, para que nas reuniões de trabalho todos tivessem a oportunidade de interagir entre si, de forma a evitar que em todas as reuniões os grupos de formassem exatamente da mesma maneira. Para isto, eu criei um script cgi, usando o comando sort e alguns outros comandos, para dar a formatação final.

O comando sort tem a opção -R, que faz exatamente isto.

A numeração das linhas é feita com o comando cat -n. A numeração é seguida de uma marca de tabulação, o que deixa o resultado final desalinhado e, por esta razão, eu substitui esta marca de tabulação por um travessão (—).

A lista de nomes fica no arquivo equipe.txt.

Caso vocês desejem ver este script em funcionamento, o endereço é http://www.dicas-l.com.br/cgi-bin/equipe.cgi

É só recarregar a página para constatar que a cada vez a ordem é diferente.

O código utilizado é:

#! /bin/bash


echo "Content-type:text/html";
echo

echo "<HTML><BODY><TITLE>Equipes de Reunião</TITLE>"
echo "<DIV align=center>"

echo "<H1 style=\"font-family:Calibri;\"> Equipes de Reunião</H1>"

echo "<TABLE><TR><TD>"
echo "<PRE style=\"font-family:Calibri;font-size:1.5em;\">"
sort -R equipe.txt | cat -n | sed "s/\t/ \&mdash; /"
echo "</P>"
echo "</PRE>"
echo "</TR>"
echo "</TABLE>"
echo "</DIV>"
echo "</HTML></BODY>"


Veja a relação completa dos artigos de Rubens Queiroz de Almeida