Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1754 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Liste fichier expression régulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste fichier expression régulière

n°2255336
coolkis
Posté le 09-04-2015 à 11:52:35  profilanswer
 

Bonjour,
 
Je voudrais lister certain fichier d'un répertoire du type "toto@path=%2test".
 
J'ai commencé le code ci-dessous, le script liste bien les fichiers mais j'ai un message d'erreur.
 
Message d'erreur : Unrecognized escape \w passed through at D:\x128115\scripts\Perl\purge.pl line 15.
 

Code :
  1. use warnings;
  2. use File::Find;
  3. use Cwd;
  4. my $dir = "D:/temp";
  5. File::Find::find(\&search, ($dir));
  6. sub search {
  7.   if ($_ =~ "/\w/*path*" ) {
  8.     print "$_\n";
  9.   }
  10. }


 
Est-ce que quelqu'un aurait une idée d'ou cela provient svp ?
Merci d'avance.

mood
Publicité
Posté le 09-04-2015 à 11:52:35  profilanswer
 

n°2255340
gilou
Modérateur
Modzilla
Posté le 09-04-2015 à 12:20:58  profilanswer
 

ce sont les "..." qui ne collent pas je pense. Ça fait une string ordinaire, pas une regexp, et dans une string ordinaire, \w n'est pas interprétable.
$_ =~ {/\w/*path*} marcherait mieux, mais je comprends rien à ton expression régulière avec un /\w/ dedans :??: surtout que $_ est un simple nom de fichier, non?
et le $_ =~ est inutile dans un tel contexte, autant tester sur $_ en utilisant son rôle de variable par défaut.
Pourquoi ne pas tester simplement avec
if (/path/) {...}  
ou  
if (/@path=/) {...}  
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2255341
coolkis
Posté le 09-04-2015 à 12:39:25  profilanswer
 

Merci Gilou pour ta réponse.
Effectivement désolé, je n'avais pas posté le bon code:
 
J'avais testé avec :
 

Code :
  1. if ($_ =~ "\w*path*" ) {


 
Du coup tu m'as mis sur la piste avec les guillemets et cela fonctionne avec :
 

Code :
  1. if ($_ =~ '\w*path*') {


 
Merci encore.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Liste fichier expression régulière

 

Sujets relatifs
[RESOLU] Batch - copier des parties d'un fichier textetelechargement de fichier (ERREUR double En-têtes )
genere un fichier via un fichier csvAfficher le nouveau enregistrement dans la liste.
Liste déroulante liéeshtml 5 drag and drop plusieurs fichier
suppression fichier avec macro VBComparer Bdd à fichier txt
Gestion d'un fichier .csvRecherche d'un mot dans un fichier
Plus de sujets relatifs à : Liste fichier expression régulière


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR