Parcours recursive d'un repertoire & recuperer fichier.txt
-
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"; };
A voir également:
- Parcours recursive d'un repertoire & recuperer fichier.txt
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment recuperer une video sur youtube - Guide
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 :
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
Le
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 :
Dal
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
Fella ||
je vous remercie