OVH Cloud OVH Cloud

liste des fichiers *.aaa et *.bbb d'un repertoire specifie

14 réponses
Avatar
fun.x
Bonjour,

Je sais que ce genre de questions est assez basique, mais apres une
recherche sur les newsgroups, je n'arrive toujours pas a faire
exactement ce que je veux.

Voila, pour commencer, je desire recuperer la liste des fichiers *.aaa
et *.bbb d'un repertoire que je specifie en parametre. Evidemment, je
suis un debutant... :-)

J'ai essaye d'utiliser Glob mais ca ne marche pas des masses.

Merci pour votre aide.
Toute proposition d'optimisation est la bienvenue :-)


voila mon code:

use File::DosGlob;
use strict 'vars';

my $Argc=@ARGV;
if ($Argc != 1) {
printf ("USAGE: $0 <DIRECTORY>\n");
exit;
}

my $Dir = $ARGV[0];

#opendir(DIR, $Dir) or die("Error while openning directory $Dir\n");

my @list= glob("$Dir\\*.aaa $Dir\\*.bbb");

foreach (@list) {
printf("$_\n");
}

#closedir(DIR);

4 réponses

1 2
Avatar
kurtz le pirate
In article ,
"fun.x" wrote:

Bonjour,

Je sais que ce genre de questions est assez basique, mais apres une
recherche sur les newsgroups, je n'arrive toujours pas a faire
exactement ce que je veux.

Voila, pour commencer, je desire recuperer la liste des fichiers *.aaa
et *.bbb d'un repertoire que je specifie en parametre. Evidemment, je
suis un debutant... :-)

J'ai essaye d'utiliser Glob mais ca ne marche pas des masses.

Merci pour votre aide.
Toute proposition d'optimisation est la bienvenue :-)


voila mon code:

use File::DosGlob;
use strict 'vars';

my $Argc=@ARGV;
if ($Argc != 1) {
printf ("USAGE: $0 <DIRECTORY>n");
exit;
}

my $Dir = $ARGV[0];

#opendir(DIR, $Dir) or die("Error while openning directory $Dirn");

my @list= glob("$Dir*.aaa $Dir*.bbb");

foreach (@list) {
printf("$_n");
}

#closedir(DIR);



j'arrive peut être un peu tard et comme je ne suis que débutant, j'ai
fait une truc du genre :

chdir($thisDir)
foreach my $thisFile (<*.mp3>) {
...
}

pour traiter uniquement les fichiers mp3 d'un dossier. si ça peut aider
klp


Avatar
fun.x
Rajouter:
(?<!f1.aaa)
et lire la doc pour faire mieux.


Salut,

j'ai encore du mal a ajouter ton idee dans l'expression reguliere.
Alors si tu as en tete une bonne doc sur le net, avec plein
d'exemples... (genre "Regexp pour les nuls" ... :-) je suis preneur.

Parceque si le f1.aaa est un nom de fichier que je stocke dans une
variable (ou que je recois en argument), il me faut - au sein de la
meme expression - utiliser cette variable en en extrayant le nom de
fichier sans extension (?<!_ici_.aaa)

Je posterais ici le resultat de ma reflexion, mais si vous avez une
solution avant moi (et surement plus elegante), d'avance merci !

Avatar
JacK
Le 01/06/2005 04:49, :
Rajouter:
(?<!f1.aaa)
et lire la doc pour faire mieux.



Salut,

j'ai encore du mal a ajouter ton idee dans l'expression reguliere.
Alors si tu as en tete une bonne doc sur le net, avec plein
d'exemples... (genre "Regexp pour les nuls" ... :-) je suis preneur.

Parceque si le f1.aaa est un nom de fichier que je stocke dans une
variable (ou que je recois en argument), il me faut - au sein de la
meme expression - utiliser cette variable en en extrayant le nom de
fichier sans extension (?<!_ici_.aaa)

Je posterais ici le resultat de ma reflexion, mais si vous avez une
solution avant moi (et surement plus elegante), d'avance merci !



Compulser: http://perl.enstimac.fr/


Avatar
Paul Gaborit
À (at) 30 May 2005 23:31:05 -0700,
"fun.x" écrivait (wrote):
Comment completer la regexp en entree de grep ? avec un tag du genre
!f1.aaa ?


Combiner une affirmation et une négation dans une expression rationnelle est
toujours difficile et n'en facilite certainement pas la lecture. Je
conseillerais plutôt un double 'grep' :

my @files_filtered;
{
opendir my $d, $dir or die "$dir: $!n";
@files_filtered grep {not m/^f1.aaa$/}
grep {/.(?:aaa|bbb)Z/}
readdir $d;
closedir $d; # pas indispensable...
}
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

1 2