você está aqui: Home  → Arquivo de Mensagens

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

 

 

Opinião dos Leitores

Rodrigo
04 Out 2012, 12:24
Excelente dica, Rubens.
Valeu!
André Saunite
04 Out 2012, 11:10
Eu costumava fazer esse tipo de coisa usando o comando "shuf", que faz a mesma coisa do "sort -R".
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script