aide demandée sur tri tableau 2D
Bonjour,
Je n'arrive pas à faire un tri dans un tableau et sortir la ligne avec la plus grande durée de temps.
J'ai la liste suivante:
Code:
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
| Flag time : 4097 0:00:23 user2 MATLAB/42 4.4%
Flag time : 11365 0:00:42 user1 MATLAB/51 3.3%
Flag time : 11365 0:01:23 user1 MATLAB/50 1.2%
Flag time : 11365 0:02:02 user1 MATLAB/50 3.0%
Flag time : 11365 0:10:07 user1 MATLAB/50 7.1%
Flag time : 11365 0:16:37 user1 MATLAB/49 7.5%
Flag time : 11365 0:22:20 user1 MATLAB/49 7.2%
Flag time : 11365 0:24:29 user1 MATLAB/49 6.0%
Flag time : 11365 0:28:19 user1 MATLAB/49 1.2%
Flag time : 11365 0:29:14 user1 MATLAB/51 1.4%
Flag time : 18715 0:00:56 user2 MATLAB/40 3.1%
Flag time : 11365 0:39:10 user1 MATLAB/54 6.2%
Flag time : 11365 0:44:18 user1 MATLAB/54 6.5%
Flag time : 10346 0:02:06 user3 MATLAB/41 1.5%
Flag time : 10346 0:03:06 user3 MATLAB/41 1.1%
Flag time : 10346 0:05:35 user3 MATLAB/42 6.1%
Flag time : 10346 0:10:34 user3 MATLAB/42 6.2%
Flag time : 10346 0:15:35 user3 MATLAB/42 6.3%
Flag time : 10346 0:20:35 user3 MATLAB/42 6.3%
Flag time : 10346 0:25:35 user3 MATLAB/42 6.2%
Flag time : 10346 0:30:36 user3 MATLAB/42 6.2%
Flag time : 10346 0:35:35 user3 MATLAB/42 6.2%
Flag time : 10346 0:39:45 user3 MATLAB/42 1.8%
Flag time : 10346 0:40:39 user3 MATLAB/42 1.1%
Flag time : 10346 0:41:33 user3 MATLAB/42 1.1%
Flag time : 10346 0:42:27 user3 MATLAB/42 1.1%
Flag time : 10346 0:43:21 user3 MATLAB/42 1.1% |
:aie: Je sais je suis toujours sur le script de mon post précédent mais le problème est différent :aie:
Voici mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #!/usr/bin/perl
use strict;
use warnings;
open (F, 'MATLAB_2011_04_v2.log');
my @t = <F>;
close (F);
#mise en forme
my @out;
foreach my $line (@t) {
# print "Flag Line : $line\n";
my @col=split (/\s+/,$line);
my $pid=$col[3];
next if !defined $pid;
my @time=split (/:/,$col[4]);
my $login=$col[5];
# print "Flag Time : $time[0] $time[1] $time[2]\n";
my $sec= ($time[0]*3600 + $time[1]*60 + $time[2]);
@out=(@out,"PID: $pid Temps: $sec Login: $login \n");
}
sort @out;
print "@out\n"; |
J'aimerais que ce script me sorte le temps max pour chaque PID, et non pas les colonnes triée ce qui est le cas actuellement.
Documentation lue :
http://articles.mongueurs.net/magazines/linuxmag48.html
http://www.hobbesworld.com/perl/tableaux.php
http://articles.mongueurs.net/traduc...an-rosler.html
Désolé mais là je n'y arrive pas ....
Merci de votre aide.