Bonjour,
J'ai un fichier log dont je voudrais extraire des chiffres.
Le fichier se présente de la manière suivante :
...
Données inutiles
***** SAUVEGARDE ETAB 25
Données inutiles
Number of files: 40600
Number of files transferred: 61
Données inutiles
***** SAUVEGARDE ETAB 27
Données inutiles
etc.
Je ne réussis à extraire les données que pour un établissement sur 2 !!!
Qu'est-ce qui ne va pas dans mon programme?
Merci par avance.
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 #!/usr/bin/perl print "donnez le nom du fichier :\n"; $nom_fichier = <STDIN>; open SOURCE,$nom_fichier || die "impossible d'ouvrir votre fichier "; open DESTINATION, ">resultat_sauv.txt"; print DESTINATION "Etablissement\tNb total fich\tNb fich modif\n"; while ($ligne=<SOURCE>){ while (($ligne=<SOURCE>)&&(!($ligne =~/([*]{5} SAUVEGARDE ETAB )(.*)/))){}; if ($ligne =~/([*]{5} SAUVEGARDE ETAB )(.*)/){ $nombre = $2; chomp $nombre; $etab = $nombre."\t"; while (($ligne=<SOURCE>)&&(!($ligne =~/([*]{5} SAUVEGARDE ETAB )(.*)/))){ if($ligne =~/(Number of files: )(.*)/){ $nombre = $2; chomp $nombre; $total_fic = $2."\t"; } if($ligne =~/(Number of files transferred: )(.*)/){ $nombre = $2; chomp $nombre; $fic_modif = $2; } } $notice = $etab.$total_fic.$fic_modif; print DESTINATION "$notice\n"; } } close SOURCE; close DESTINATION;
Partager