Shufle en unix
Résolu
Poireau007
Messages postés
85
Statut
Membre
-
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 ??
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
Salut,
Tu parles de l'algorithme de Fisher Yates
Voici en Perl.
En fait le programme tu peux l'écrire toi même ;-)
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