Pular para o conteúdo

Shuffle - Simples shell script que embaralha um array

Simples shell script que embaralha um array.

Exemplo de utilização:

$> vec=( a b c d e f g h )
$> echo ${vec[*]}
a b c d e f g h

$> vec2=( $(shuffle ${vec[*]}) )
$> echo ${vec2[*]}
g b a c e f h d


Funcionou para sh, acredito que também funcione em outros shells. O tamanho do array não pode exceder 32767 pelo uso de $RANDOM.

Roger roger.willian
Hits: 6.213 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Simples shell script que embaralha um array.

Exemplo de utilização:

$> vec=( a b c d e f g h )
$> echo ${vec[*]}
a b c d e f g h

$> vec2=( $(shuffle ${vec[*]}) )
$> echo ${vec2[*]}
g b a c e f h d


Funcionou para sh, acredito que também funcione em outros shells. O tamanho do array não pode exceder 32767 pelo uso de $RANDOM.

Download shuffle Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#! /usr/bin/sh

array=( $@ )
length=$(echo ${array[*]} | wc -w)
i=0
while [[ $i -lt $length ]]
do
  idx=$RANDOM%$length
  aux=${array[$i]}
  array[$i]=${array[$idx]}
  array[$idx]=$aux
  i=$((i+1))
done
echo ${array[*]}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

script-firewall 0.01

Barra de progresso em Dialog

apt-fast melhorado e empacotado

ison - testar conectividade da máquina

Manter o servidor conectado a internet pelo rp-pppoe

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.