Avant l'exécution de script
lami20j@debian:~/trash/chabrrr$ ls -1
staXiti_061207.txt
staXiti_061208.txt
staXiti_061209.txt
xiti_stat.pl
lami20j@debian:~/trash/chabrrr$ cat staXiti_061207.txt
05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$ cat staXiti_061208.txt
05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$ cat staXiti_061209.txt
05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
Le script
lami20j@debian:~/trash/chabrrr$ cat xiti_stat.pl
#!/usr/bin/perl
use warnings;use strict;
my @fic_stat = </home/lami20j/trash/chabrrr/staXiti*>;
foreach my $fichier (@fic_stat){
$fichier =~ /\/staXiti_(\d{4})(\d\d)\.txt/;
my $date = "${1}20$2";
my $fic = "resultat_" . "$date.txt";
open F_ECRIRE,">>$fic" or warn "E/S : $!\n";
open F_LIRE,"$fichier" or warn "E/S : $!\n";
while(<F_LIRE>){
s/^/$date = /;
print F_ECRIRE $_;
}
}
#*********** FIN TRAITEMENT **********#
#
# concateantion dans resultatfinal.txt
open F_ECRIRE,">>resultatfinal.txt" or die "E/S : $!\n";
my @fic_res = </home/lami20j/trash/chabrrr/resultat_*.txt>;
foreach my $e(@fic_res){
open F_LIRE,"$e" or warn "E/S : $!\n";
while(<F_LIRE>){
print F_ECRIRE;
}
}
__END__
Exécution de script
lami20j@debian:~/trash/chabrrr$ perl xiti_stat.pl
Le résultat
lami20j@debian:~/trash/chabrrr$ ls -1
resultat_06122007.txt
resultat_06122008.txt
resultat_06122009.txt
resultatfinal.txt
staXiti_061207.txt
staXiti_061208.txt
staXiti_061209.txt
xiti_stat.pl
lami20j@debian:~/trash/chabrrr$ cat resultat_06122007.txt
06122007 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122007 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122007 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$ cat resultat_06122008.txt
06122008 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122008 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122008 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$ cat resultat_06122009.txt
06122009 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122009 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122009 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$ cat resultatfinal.txt
06122007 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122007 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122007 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
06122008 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122008 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122008 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
06122009 = 05:57:42 10.100.62.52 /hit.xiti s=241243&s2=1&p=PNC&hl
06122009 = 05:57:43 10.100.62.52 /hit.xiti s=241243&s2=1&p=GSM_reconnu&hl
06122009 = 05:57:49 10.100.62.52 /hit.xiti s=241243&s2=1&p=transfere&hl
lami20j@debian:~/trash/chabrrr$
remarque : à chaque fois je vais modifier les lignes 3 et 4 seulement et j'ai des dizaines de lignes dans le fichier
Merci pour ton indication