[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
cdaab[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
dbaac[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
cbada[user@notebook ~]$ echo 'aabcd' | sed 's/\(.\)/\1\n/g' | perl -MList::Util -e 'print List::Util::shuffle <>' | perl -pe 's/\n//g';
adcba[user@notebook ~]$
AFAIK 이것은 문자열 순서를 무작위로 지정하는 안전한 방법입니다.하지만 단 하나의 perl 명령으로 이를 수행할 수 있습니까?
답변1
"perl 명령"의 의미에 따라 다릅니다. 물론 이는 메소드를 일부 리팩토링하여 수행할 수 있습니다.
echo abcde | perl -MList::Util=shuffle -lpe '$_ = join "", shuffle split //'