Como randomizar com segurança a ordem dos caracteres em uma string?

1
[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
cdaab[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
dbaac[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
cbada[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
adcba[user@notebook ~]$ 

AFAIK esta é uma maneira segura de randomizar a ordem das strings. Mas isso pode ser feito com apenas um comando perl?

    
por pepite 20.12.2016 / 08:12

1 resposta

3

Depende do que você quer dizer com "um comando perl". Certamente pode ser feito com algum refator da sua abordagem:

echo abcde | perl -MList::Util=shuffle -lpe '$_ = join "", shuffle split //'
    
por 20.12.2016 / 08:36

Tags