Shufle en unix

Résolu
Poireau007 Messages postés 85 Statut Membre -  
Poireau007 Messages postés 85 Statut Membre -
Bonjour,

je cherche a melanger des lignes d'un fichier avec une commande unix...

apparement il existe la command shuffle mais je ne l'ai pas sur mon system,
j'ai l'impression que c'est un e nouvelle commande car le man du linux d'un ami date de 2008, ca vient de sortir ??
Configuration: Mac OS X
Firefox 3.0.4

3 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Tu parles de l'algorithme de Fisher Yates
    Voici en Perl.
    En fait le programme tu peux l'écrire toi même ;-)
    lami20j@debian:~/trash/ccm_perl$ cat fic.txt
    aaaa
    bbbb
    cccc
    dddd
    eeee
    ffff
    lami20j@debian:~/trash/ccm_perl$ cat ccm_melangertableau
    #!/usr/bin/perl
    use strict;use warnings;
    
    # le mélange de Fisher Yates
    sub melange{
      my $tableau=shift;
      my $i;
      for($i=@$tableau;--$i;){
        my $j=int rand($i+1);
        next if $i == $j;
        @$tableau[$i,$j]=@$tableau[$j,$i];
      }
    }
    
    my @fichier=<>;
    melange(\@fichier);
    print for @fichier;
    __END__
    lami20j@debian:~/trash/ccm_perl$ perl ccm_melangertableau fic.txt
    aaaa
    ffff
    bbbb
    eeee
    cccc
    dddd
    
    1
  2. Poireau007 Messages postés 85 Statut Membre 15
     
    oula, ok je me plonge dedans !
    merci lami20J
    0