|
|
|
|
Bonjour,
Voila, j'ai tlechargé PERl, aussi je debute .J'ai regardé des tutos , mais je ne m'en sors pas...merci pour votre aide.
Auparavant je faisais un calcul via excel, mais vu le nrbre de lignes + de 100 000 lignes , c'est bp trop lent.
J'ai un fichier texte qui a cette forme nomme toto.txt
EUR 1.2315
EUR 1.2318
EUR 1.2356
Je cherche a recuperer la valeur maxi de la deuxieme colonne
soit ici la valeur 1.2356. Mon fichier de sortie sortie.txt ne devra donc contenir qu'une seule ligne , celle de la valeur max
EUR 1.2356
Cetait mon premier probleme.car je nage un peu pour y arriver..
Deuxieme probleme
J'ai un fichier toto2.txt valeur qui a cette forme
EUR 1.2350 1.2310
EUR 1.2370 1.2320
et je cherche a recuperer la valeur moyenne de la colonne 2 + colonne 3
Soit ici 1,2330 pour la 1ere ligne ...etc.. avec donc un fichier texte de sortie sortie2.txt
EUR 1.2330
EUR 1.2345
Merci pour votre aide, car c'est un peu trop dur pour mes competences ^^
Configuration: Windows 2003 Firefox 1.5.0.12
Salut,
root@debian:~# cat max.pl
#!/usr/bin/perl
#
open LIRE,"a.txt" or die "E/S : $!\n";
open ECRIRE,">sortie.txt" or die "E/S : $!\n";
$max = 0;
while (<LIRE>){
/(.*)\s+(\d.*)/;
$max = $2 if $2 > $max;
}
print ECRIRE "EUR $max\n";
__END__
root@debian:~# cat a.txt
EUR 1.2315
EUR 1.2318
EUR 1.2356
root@debian:~# perl max.pl
root@debian:~# cat sortie.txt
EUR 1.2356
root@debian:~#
lami20j |
Merci bp pour ton aide lami20..
|
Re,
root@debian:~# cat moyenne.pl
#!/usr/bin/perl
#
open LIRE,"b.txt" or die "E/S : $!\n";
open ECRIRE,">sortie2.txt" or die "E/S : $!\n";
while (<LIRE>){
@t = $_ =~ /(\S+)/g;
shift @t;
printf ECRIRE "EUR %.4f\n",(eval (join "+",@t) / scalar @t);
}
__END__
root@debian:~# cat b.txt
EUR 1.2350 1.2310
EUR 1.2370 1.2320
root@debian:~# perl moyenne.pl
root@debian:~# cat sortie2.txt
EUR 1.2330
EUR 1.2345
lami20j |
et pouvoir me debarasser de ce maudit excel
|
Merci,
|
Salut,
lami20j@debian:~/trash$ cat moyenne.pl
#!/usr/bin/perl
#
open LIRE,"b.txt" or die "E/S : $!\n";
open ECRIRE,">sortie2.txt" or die "E/S : $!\n";
while (<LIRE>){
next unless /^EUR/;
@t = $_ =~ /(\S+)/g;
shift @t;
printf ECRIRE "EUR %.4f\n",(eval (join "+",@t) / scalar @t);
}
__END__
lami20j@debian:~/trash$ cat b.txt
EUR 10.23 10.13
AUD 1.32 1.12
CSZ 12.32 10.14
EUR 18.12 17.50
VOL 14.23 14.10
lami20j@debian:~/trash$ perl moyenne.pl
lami20j@debian:~/trash$ cat sortie2.txt
EUR 10.1800
EUR 17.8100
lami20j |
max lami20j@debian:~/trash$ cat max.pl
#!/usr/bin/perl
#
open LIRE,"a.txt" or die "E/S : $!\n";
open ECRIRE,">sortie.txt" or die "E/S : $!\n";
$max = 0;
while (<LIRE>){
next unless /^EUR/;
/(.*)\s+(\d.*)\s+\d.*/;
$max = $2 if $2 > $max;
}
print ECRIRE "EUR $max\n";
__END__
lami20j@debian:~/trash$ cat a.txt
EUR 10.23 10.13
AUD 1.32 1.12
CSZ 12.32 10.14
EUR 18.12 17.50
VOL 14.23 14.10
lami20j@debian:~/trash$ perl max.pl
lami20j@debian:~/trash$ cat sortie.txt
EUR 18.12
lami20j |