Bonjour je viens vous voir car je suis actuellement entrain de faire un script permettant de lire dans le fichier d'un dossier et récupérer les phrase commençant par un motif(une lettre ou un mot).
Pour ceci pas de problème m'ont problème vient du faite que j'aimerai scruter les sous dossier du dossier choisit et quand je lance mon code ce n'es pas le sous dossier qui est lut mais le dossier ou se trouve m'ont script.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 #!/usr/bin/perl # Saisie du dossier print "\n Quel dossier ? "; $Dossier=<STDIN>; chomp($Dossier); # Saisie du motif print "\n Quel motif ? "; $Motif=<STDIN>; chomp($Motif); # Saisie du nom du rapport print "\n Quel nom pour le rapport ? "; $Rapport=<STDIN>; chomp($Rapport); # Créer le fichier rapport open (fichierRapport, "> $Rapport"); # Ouverture du fichier rapport en écriture $DateDuJour=`date`; # récupération de la date du systeme avec les quotes inversées dans la variable date du jour print fichierRapport "Date : $DateDuJour"; print fichierRapport "Dossier : $Dossier\n\n"; #Listing des fichiers du répertoire opendir REP,$Dossier; #descripteur de répertoire. @listFile = readdir REP; # la liste des fichiers (et répertoires) de D close REP; #Affichage temporaire de la liste des fichiers #foreach (@listFile) #{ # print "$_ "; #} $i=0; foreach (@listFile) { $i++; if (-f "$Dossier/$_") # si $_ est un fichier et non un dossier ou un repertoire { #print "\nFichier : $_\n\n"; print fichierRapport "\n\nFichier : $_\n\n"; open (fichierLu, "< $Dossier/$_"); $compteur = 0; while ($l = <fichierLu>) { $compteur++; if ($l =~ /^$Motif/) { print fichierRapport "ligne $compteur : $l"; } } close fichierLu; } else { if (-d "$Dossier/$_") { $SousDossier="$Dossier/$_"; } print $SousDossier; print "\n"; #Listing des fichiers du répertoire opendir REP,$SousDossier; #descripteur de répertoire. @listFile2 = readdir REP; # la liste des fichiers (et répertoires) de D close REP; foreach (@listFile2) { if (-f "$SousDossier/$_") # si $_ est un fichier et non un dossier ou un repertoire { #print $SousDossier #print "\nFichier du sous dossier : $_\n\n"; print fichierRapport "\n\nFichier : $_\n\n"; open (fichierLu2, "< $SousDossier/$_"); $compteur = 0; while ($l = <fichierLu>) { $compteur2++; if ($l =~ /^$Motif/) { print fichierRapport "ligne $compteur : $l"; } } close fichierLu2; } } } } close fichierRapport; print "\nTraitement termine"; print "\nRapport genere : $Rapport"; print "\n\nAurevoir\n\n";
Partager