Parcours recursive d'un repertoire & recuperer fichier.txt
Fella ||
Messages postés
2
Statut
Membre
-
Fella || -
Fella || -
Bonsoir
j écrie un script perl qui parcours un répertoire et les sous répertoires et je veux récupérer les fichiers textes ( j arrive pas a faire cette dernière) je veux introduire une expression régulière pour cela mais apparemment sa ne marche pas
Mon script :
j écrie un script perl qui parcours un répertoire et les sous répertoires et je veux récupérer les fichiers textes ( j arrive pas a faire cette dernière) je veux introduire une expression régulière pour cela mais apparemment sa ne marche pas
Mon script :
#!/usr/bin/perl
use strict;
use warnings;
use File::Find;
find(\&recherche, '/home/fella/REP');
my $var;
sub recherche {
$var=$_;
if ($var=~/* .txt/) print "$_\n";
};
1 réponse
-
Salut Fella ||,
Il y a plusieurs problèmes dans ton code, le principal étant que ta regexp n'est pas bonne. Pour rechercher des noms de fichiers se terminant par ".txt", tu devrais faire :/\.txt$/
.
Ensuite, il n'est pas nécessaire de créer une variable (de plus globale) pour traiter le résultat capturé dans ta fonction de traitement. Utilise directement$_
, cela allège aussi ton code.
Le;
à la fin de l'accolade fermante de ta fonction est aussi redondant.
Au final, cela donne cela (avec une recherche insensible à la case permettant de trouver des extensions .TXT, comme .txt) et l'indication du répertoire :
#!/usr/bin/perl use strict; use warnings; use File::Find; find(\&recherche, '/home/fella/REP'); sub recherche { if (/\.txt$/i) { print "$_ found in $File::Find::dir\n"; } }
Dal