IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Regex (encore ..)


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut Regex (encore ..)
    Bonsoir
    Et oui ! encore une question sur ces fameuses regex's :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $TempCpu = `sensors | grep "Core" | tr "\n" " " | sed -re 's/ {2,}/ /g'`;
    # > Core 0: +51.0°C (high = +105.0°C, crit = +105.0°C) Core 1: +53.0°C (high = +105.0°C, crit = +105.0°C)
    $TempCpu =~ s/\s*(Core)\s*(\d{1}).*(: \+\d{2})\.\d{1}(°C).*/$1$2$3$4/g;
    # > Core0: +51°C
    Je voudrais, en fait, récupérer les températures de tout les Core's.

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Hum
    ta première ligne c'est du shell plus que du Perl. Franchement, Perl t'offre un contrôle beaucoup plus fin du résultat.
    Pour ta troisième ligne, ne fait-elle pas ce que tu souhaites? Ou as-tu un message d'erreur? Peux-tu fournir précisément la ligne en entrée et le résultat souhaité.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2014
    Messages : 84
    Points : 197
    Points
    197
    Par défaut
    perso, j'aurai pensé différemment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach my $core (split(/\n/, `sensors | grep "Core" | sed -re 's/ {2,}/ /g'`; )){  #a voir si ça fonctionne sans la cmde sed
       $core =~ s/\s*(Core)\s*(\d{1}).*(: \+\d{2})\.\d{1}(°C).*/$1$2$3$4/g;
       print "Core :: $core\n";
    }
    on récupère toujours la commande qui n'est pas du perl, mais qui doit être du sh ou du ksh
    on garde le saut de ligne pour appeler facilement la fonction split
    puis on affiche les températures de chaque core


    je l'ai testé avec ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/usr/bin/perl -w
    my $st = "Core 0: +51.0°C (high = +105.0°C, crit = +105.0°C)\nCore 1: +53.0°C (high = +105.0°C, crit = +105.0°C)";
    foreach my $core (split(/\n/, $st)){
       $core =~ s/\s*(Core)\s*(\d{1}).*(: \+\d{2})\.\d{1}(°C).*/$1$2$3$4/g;
       print "$core\n";
    }

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Pourrais-tu :
    - nous donner un exemple de ce que retourne "sensors" (sans aucune manipulation shell), car comme dis lolo, si tu utilises perl pour faire un traitement, autant tout faire avec (et limiter au maximum le contenu de la commande shell)
    - préciser si tu ne veux que la température du Core 0 ou si tu veux aussi celle du Core 1 ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    Bonjour et merci pour vos réponses.

    alors, la sortie de 'sensors' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ~$ sensors
    coretemp-isa-0000
    Adapter: ISA adapter
    Core 0:       +43.0°C  (high = +105.0°C, crit = +105.0°C)
    Core 1:       +44.0°C  (high = +105.0°C, crit = +105.0°C)
    en fait, ce qui m'interesse c'est "Core 0: +43.0)C" ET "Core 1: +44.0°C", le reste pas besoin.
    Apres si vous avez des solution en pure Perl sans passer par le shell, ça serais largement mieux .

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Si tu n'as pas besoin d'utiliser le résultat dans un script perl par la suite, une solution rapide est d'utiliser awk dans le terminal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sensors | awk '/^Core/{print $1 $2" "$3}'
    L'équivalent en une ligne de commande perl avec l'autosplit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sensors | perl -lane 'print "$F[0] $F[1] $F[2]" if /^Core/'
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    Ben si justement ! Tout l’intérêt de la chose est de l'utiliser dans un script
    J'arrive à avoir la température pour le Core 0 mais pas pour le Core 1.
    Mais je vais voir pour utiliser une des solution(s) donné(es) plus haut. (Désolé je suis pas très fort en orthographe)
    Je vous tiens au courant.

  8. #8
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Une solution possible (non testée) en Perl pur, à part l'appel à sensor, bien sûr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    my @temperatures = `sensor`;
    my @core;
    for my $temp (@temperatures) {
        next unless $temp =~ /^Core/;
        @core[$1] = $2 if $temp =~ /^Core\s+(\d+)\s?:\s+([+-]?\d+\.\d+)/;
    }
    A la fin, le tableau @core devrait contenir la température pour chaque code.

  9. #9
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Une autre version:
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    open(SS, "sensors |");
     
    my @coreCT; # array contenant les températures, les index seront les numéros de core (vu qu'ils sont dans l'ordre et partent de 0)
     
    while(<SS>) {
        push (@coreCT, $1) if /^Core \d:\h+(\S+)/
    }
     
    # affichage
    foreach my $coreN (0 .. $#coreCT) {
        print "Core " . $coreN . ": " . $coreCT[$coreN] . "\n";
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    @ CosmoKnacki : Merci, mais un probleme risque de se poser :
    voilà la sortie de 'sensors' sur un autre de mes pc.
    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
    ~$ sensors
    acpitz-virtual-0
    Adapter: Virtual device
    temp1:        +40.0°C  (crit = +124.0°C)
     
    k8temp-pci-00c3
    Adapter: PCI adapter
    Core0 Temp:   +31.0°C  
    Core0 Temp:   +26.0°C  
    Core1 Temp:   +35.0°C  
    Core1 Temp:   +31.0°C  
     
    nouveau-pci-0200
    Adapter: PCI adapter
    temp1:        +61.0°C  (high = +95.0°C, hyst =  +3.0°C)
                           (crit = +125.0°C, hyst =  +2.0°C)
                           (emerg = +135.0°C, hyst =  +5.0°C)
    ta solution risque de ne pas fonctionner, je pense.

  11. #11
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Dans ce cas, il n'est plus possible d'utiliser le numéro du Core comme index, autant récupérer le numéro et la température dans une liste de tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    open(SS,"sensors |");
     
    my @coreCT;
     
    while(<SS>) {
        push (@coreCT, ["Core$1", $2]) if /^Core\h*(\d+)[^:]*:\h+(\S+)/
    }
     
    # affichage
    foreach my $core (@coreCT) {
        print $core->[0] . ": " . $core->[1] . "\n";
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    Merci
    ça fonctionne bien, reste à regrouper (ou pas! suivant les résultats) les températures des même Core, ensuite c'est good.

  13. #13
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 848
    Points : 6 535
    Points
    6 535
    Par défaut
    Tu peux le faire directement sans avoir à le faire dans un deuxième temps.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    Ça me rend dingue ces histoires de tableaux etc ... j'ai jamais compris comment récupérer leurs valeur !
    j'ai remanier un peut ce que tu as fait pour mes besoins.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
    open(ST,"sensors |");
    my @coreCT;
    while(<ST>) {
            push (@coreCT, ["$1 $2"]) if /^Core\s*(\d{1}).*\+(\d{2})\.\d{1}°C/
    }
    close(ST);
    (j'ai remplacer le SS par ST, pour des raisons évidentes :p).
    j'ai bien ce que je cherche CAD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ~$ ./test.pl
    0 30
    0 22
    1 35
    1 30
    Maintenant il sagit de trouver comment lui dire que si deux températures sont trouvées pour le même core, il faut les additionner.
    Et la je galère.

  15. #15
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Tu n'as pas vraiment fait un tableau de tableaux, mais un tableau (simple) de références vers des tableaux simples contenant chacun une seule chaîne de caractères composées de deux chiffres séparés par un espace. Ce qui te donne une structure de ce genre (j'ai mis des valeurs bidon):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    0  ARRAY(0x600500b90)
       0  ARRAY(0x60005f160)
          0  ' 1 2'
       1  ARRAY(0x6004b3e20)
          0  '1 3'
    Finalement, si, c'est techniquement un tableau de tableaux, mais il n'a pas la structure permettant de l'utiliser facilement.

    Tu pourrais peut-être alimenter ton tableau comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(<ST>) {
            push @coreCT, [$1, $2] if /^Core\s*(\d{1}).*\+(\d{2})\.\d{1}°C/
    }
    Ce qui maintenant te donne une structure dans ce genre (après avoir "poussé" les valeurs [1, 2] et [1,3] sur le tableau):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0  ARRAY(0x6004f9518)
       0  ARRAY(0x6005d3130)
          0  1
          1  2
       1  ARRAY(0x6005d30d0)
          0  1
          1  3
    C'est un vrai tableau de tableaux, mais ce n'est toujours pas très facile à exploiter pour ce que tu veux faire

    Il vaut mieux faire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(<ST>) {
            push @{$coreCT[$1]}, $2 if /^Core\s*(\d{1}).*\+(\d{2})\.\d{1}°C/
    }
    Maintenant, en ayant "poussé" les valeurs 1 et 2 pour le processeur 0 et 4 et 7 pour le processeur 1, j'obtiens la structure suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0  ARRAY(0x6005fe3f0)
       0  ARRAY(0x6005d00e0)
          0  1
          1  2
       1  ARRAY(0x6005d45a8)
          0  4
          1  7
    Le sous-tableau 0 ARRAY(0x6005d00e0) contient 1 et 2, les valeurs pour le processeur 0. Et 1 ARRAY(0x6005d45a8) les valeurs pour le processeur 1.

    La somme des valeurs pour chaque processeur (noté $i) s'écrit simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my @sum;
    for my $i (0, 1) {
        $sum[$i] = $coreCT[$i][0] + $coreCT[$i][1];
    }
    ou, plus brièvement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sum[$_] = $coreCT[$_][0] + $coreCT[$_][1] for 0, 1;
    Le tableau @sum contient maintenant la somme des valeurs pour chaque processeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    0  ARRAY(0x600635d00)
       0  3
       1  11

  16. #16
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    J'ai répondu ci-dessus assez longuement pour t'aider à manipuler tes tableaux de tableaux.

    Mais si tout ce que tu cherches, c'est la somme des valeurs pour chaque processeur, alors pas besoin d'utiliser un tableau de tableaux. Il suffit d'alimenter un tableau de sommes indexé sur chaque processeur (l’équivalent de ce que j'ai nommé @sum ci-dessus):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my @sum = (0,0);
    while(<ST>) {
            $sum[$1] +=  $2 if /^Core\s*(\d{1}).*\+(\d{2})\.\d{1}°C/
    }

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    donc avec ce que tu viens de me donner, si il n'y a qu'une température par core (genre Core 0: +46.0°C Core 1: +52.0°C) ça fonctionne quand même ?
    En tout cas je regarde ça en détail demain matin ^^

  18. #18
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Oui, je pense que ça devrait marcher aussi dans ce cas. Avec peut-être un warning le cas échéant, mais sans doute sans conséquence sur le résultat.

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Points : 18
    Points
    18
    Par défaut
    Voilà ... nickel !
    Nom : capture d'écran1.png
Affichages : 62
Taille : 19,4 Ko
    plus qu'a fignoler tout ça :p.
    Merci all pour votre aide ... je met le sujet en résolu, mais d'autre questions sur ce script (que je posterai bientôt) vont sûrement surgir :p

    Tiens ! une me viens d'ailleur
    voila comment je calcul le % de mémoire libre et occupée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Mem = split(/ /,`free -om | grep "Mem:" | sed -re 's/ {2,}/ /g'`);
    $MemUsed = int($Mem[2]/$Mem[1]*100+0.5);
    $MemFree = int($Mem[3]/$Mem[1]*100+0.5);
    # ensuite l'affichage de la barre graph
    print "\t$LBleue\[\033[43m", " " x int(20*$MemUsed/100),"\033[42m", " " x int(20-(20*$MemUsed/100)), "$Norm$LBleue]\t@Mem[1]\t$Orange@Mem[2]\t$Vert@Mem[3]\n";
    tout fonctionne (voir le screenshot) a un détail près : arrivé a 90% les calculs sont faussés.
    J'ai pas trouvé pourquoi.

  20. #20
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Il faudrait que tu donnes des exemples où les calculs sont faux (à la fois ce que te donne la commande free et ce que tu obtiens).

    J'ai essayé avec les valeurs 2000, 1900 et 100 sous le débogueur et ça a l'air de marcher correctement pour moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      DB<1> @Mem = qw /0 2000 1900 100/;
     
      DB<2> $MemUsed = int($Mem[2]/$Mem[1]*100+0.5);
     
      DB<3> $MemFree = int($Mem[3]/$Mem[1]*100+0.5);
     
      DB<4>  p "$MemUsed % \t $MemFree %\n"
    95 %     5 %
    Peut-être que c'est la commande free qui renvoie des chiffres incohérents.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Encore les regex
    Par Joelindien dans le forum Langage
    Réponses: 8
    Dernier message: 03/04/2009, 20h26
  2. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 15h43
  3. [RegEx] regex simple qui ne marche pas (encore)
    Par denisvignes dans le forum Langage
    Réponses: 5
    Dernier message: 19/09/2008, 16h04
  4. [Regex] encore un ^^
    Par messinese dans le forum Langage
    Réponses: 6
    Dernier message: 03/03/2008, 16h47
  5. TPalette (encore)
    Par Flipper dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2002, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo