Shufle en unix

Résolu
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -  
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -
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 ??

3 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
Poireau007 Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   15
 
oula, ok je me plonge dedans !
merci lami20J
0