Changement de place au hasard dans la rangée avec des ressortingctions

Comment pourrais-je changer randomment des endroits de caractères dans un file text, avec une certaine probabilité (disons 10%)?

file:

1 34567 2 12356 3 16987 

résultat:

 1 35674 2 12653 3 61987 

Enregistrez le script suivant dans scramble.sh :

 posts="" arrlen=0 rempos=0 cat | while read procl do for i in `seq 0 $((${#procl}-1))` do let arrlen=$arrlen+1 done # scramble characters posts="" for i in `seq 0 $((${#procl}-1))` do if [ $((RANDOM%5)) -eq 1 ] then rempos=$((RANDOM%arrlen)) else rempos=0 fi posts+=${procl:$rempos:1} procl="${procl:0:$((rempos))}${procl:$((rempos+1)):$((arrlen-rempos-1))}" let arrlen=$arrlen-1 done echo "$posts" done 

Puis l'utiliser comme ceci:

 $ cat (file name) | bash scramble.sh 

par exemple

 $ cat test.txt | bash scramble.sh 36475 15236 81679 

Et si vous voulez save le résultat dans un file, faites:

 $ cat (file name) | bash scramble.sh > (new file name) 

J'espère que ça aide.