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 :

Je n'arrive pas à faire un awk dans perl


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 58
    Points
    58
    Par défaut Je n'arrive pas à faire un awk dans perl
    Salut à tous,

    J'essaye d'ecrire un script qui permet de connaitre l'occupation cpu en perl.
    J'utilise vmstat 5 5 pour calculer une moyenne.

    voici le resultat de vmstat :

    icicmoi@debian:~$ vmstat 5 5
    procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
    r b swpd free buff cache si so bi bo in cs us sy id wa
    0 0 0 126108 6848 200640 0 0 401 80 420 1399 36 6 50 7
    1 0 0 125984 6848 200640 0 0 0 0 356 925 3 1 96 0
    1 0 0 125984 6848 200640 0 0 0 0 429 1302 3 3 94 0
    1 0 0 125984 6848 200640 0 0 0 0 342 869 3 2 95 0
    1 0 0 125984 6848 200640 0 0 0 0 390 1038 3 3 94 0


    Le probleme est que j'aimerai recupérer la 14 ieme colonne. (colonne sys)
    en gros faire un awk '{print $14}.
    mais ca ne marche pas !!

    Actuellement je recupere toutes les lignes dans un tableau et j'essaye de faire un echo de la ligne puis un awk dessus mais cela me retourne l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sh: -c: line 1: syntax error near unexpected token `|'
    sh: -c: line 1: ` |  awk '{print $14}' '
    voici mon code :

    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;
     
    my @result = `vmstat 5 5`;
     
    my $test;
     
     
     
    foreach my $line (@result) {
    $test=`echo $line |  awk '{print $14}' `;
    }
     
    exit 0;


    J'aimerai bien trouve la solution en perl meme si en bassh je sais que cela fonctionne.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Hmm... Utiliser Awk depuis Perl c'est un peu étrange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/perl
    use strict;
     
    my @stats = `vmstat 5 5`;
     
    for my $line (@stats) {
      my @cols = split ' ', $line;
      print $cols[13];
    }
    Perl est généralement plus puissant et flexible que Awk.

    (Par ailleurs, tu n'es pas sur le bon forum, utilise l'un des sous-forums, le forum principal est réservé aux annonces)

    --
    Jedaï

Discussions similaires

  1. scrollbar qui dans les navigateurs n'arrive pas à faire parcourir toute la page
    Par katlinea dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/07/2007, 10h02
  2. Réponses: 11
    Dernier message: 05/04/2007, 13h13
  3. Une requête que je n'arrive pas à faire
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/12/2005, 13h53
  4. Très débutant : je n'arrive pas à faire fonctionner le JDK
    Par miltonis dans le forum Général Java
    Réponses: 20
    Dernier message: 19/10/2005, 21h20
  5. [RegEx] je n'arrive pas à faire deux regex(s?)
    Par sloshy dans le forum Langage
    Réponses: 5
    Dernier message: 17/10/2005, 16h21

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