Perl doublon fichier
Fermé
falco-
Messages postés
1
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
28 juin 2007
-
28 juin 2007 à 11:09
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 7 mai 2008 à 11:39
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 7 mai 2008 à 11:39
A voir également:
- Perl doublon fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Ouvrir fichier .bin - Guide
2 réponses
Le plus simple,
open(FILE,"$path/toto");
my @uniques;
foreach my $ligne (<FILE>) {
my $flag = 1;
foreach my $valeur (@uniques) {
if ($valeur eq $ligne) {
$flag = 0;
}
}
if ($flag) {
push (@uniques,$ligne);
}
}
close FILE;
Et tu obtiens le tableau @uniques qui contient les lignes sans doublons...
open(FILE,"$path/toto");
my @uniques;
foreach my $ligne (<FILE>) {
my $flag = 1;
foreach my $valeur (@uniques) {
if ($valeur eq $ligne) {
$flag = 0;
}
}
if ($flag) {
push (@uniques,$ligne);
}
}
close FILE;
Et tu obtiens le tableau @uniques qui contient les lignes sans doublons...
Qui est encore simplifiable :p
#!/usr/bin/perl
use strict;use warnings;
my %h;
open LIRE,"unique.txt" or die "E/S : $!\n";
print "$_" for grep { ! $h{$_}++ } <LIRE>;
__END__
#!/usr/bin/perl
use strict;use warnings;
my %h;
open LIRE,"unique.txt" or die "E/S : $!\n";
print "$_" for grep { ! $h{$_}++ } <LIRE>;
__END__
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
7 mai 2008 à 11:39
7 mai 2008 à 11:39
d'accord ;-)
root@debian:~# cat unique.pl #!/usr/bin/perl use strict;use warnings; my %h; print for grep { ! $h{$_}++ } <>; __END__ root@debian:~# perl unique.pl unique.txt aaa bbbbb ccccc aa aaaa
7 mai 2008 à 10:56
le plus simple?! pourquoi?
voici une autre solution ;-)
root@debian:~# cat unique.pl
#!/usr/bin/perl
use strict;use warnings;
my (@unique, %h);
open LIRE,"unique.txt" or die "E/S : $!\n";
print "$_" for @unique = grep { ! $h{$_}++ } <LIRE>;
__END__
root@debian:~# cat unique.txt
aaa
aaa
bbbbb
bbbbb
ccccc
ccccc
aa
aa
aaaa
aaaa
root@debian:~# perl unique.pl
aaa
bbbbb
ccccc
aa
aaaa