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

Programmation et administration système Perl Discussion :

awk dans perl


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut awk dans perl
    Bonjour!
    j'ai une ligne que j'utilise pour trouver le PID d'un TTY.
    ps -tpts/14 | grep pro4 | grep -v | awk'{print $1}'

    Le probleme est que je veux appeler cette ligne d'un script perl mais le awk ne fonctione pas en perl.
    Avez vous une idée de comment je pourrais récupérer tout mon PID en perl?

    Merci à tous

  2. #2
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Bonjour,

    Au pire, tu peux te contenter d'utiliser de simples backtricks `` pour faire exécuter ta commande par Perl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $res = `ps -tpts/14 | grep pro4 | grep -v | awk'{print $1}'`;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut sh: awk{print }: not found
    Slaut j'ai essayé ca et j'obtiens quand meme le message.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/usr/bin/perl -w
    my $res = `ps -tpts/14 | grep pro5 | grep -v grep | awk'{print $1}'`;
    Use of uninitialized value at ./prokill line 2.
    sh: awk{print }: not found.

    Merci

  4. #4
    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
    C'est parce que $1 est interpolé, il faut échapper le $ pour éviter ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $res = `ps -tpts/14 | grep pro5 | grep -v grep | awk'{print \$1}'`;
    NB : Tu pourrais aussi utiliser Proc::ProcessTable pour obtenir le même résultat en Perl pur (mais ça ne vaut pas forcément le coup, ça dépend de ta situation).

    --
    Jedaï

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut sh: awk{print $1}: not found.
    j'ai toujours ce message d'erreue meme avec le \

    sh: awk{print $1}: not found.

    pourtant en le passant directement a la ligne de commande ca marche

  6. #6
    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
    Citation Envoyé par Alzelus
    j'ai toujours ce message d'erreue meme avec le \

    sh: awk{print $1}: not found.

    pourtant en le passant directement a la ligne de commande ca marche
    Et sur la ligne de commande tu ne laisse pas d'espace entre awk et '{print $1}' ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $res = `ps -tpts/14 | grep pro5 | grep -v grep | awk '{print \$1}'`;
    --
    Jedaï

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

Discussions similaires

  1. AWK dans Perl
    Par karim_khouja dans le forum Linux
    Réponses: 9
    Dernier message: 07/04/2009, 17h04
  2. Je n'arrive pas à faire un awk dans perl
    Par icicmoi dans le forum Langage
    Réponses: 1
    Dernier message: 13/04/2008, 11h09
  3. commande awk dans script perl
    Par sorilazer dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2007, 10h16
  4. execution php dans perl
    Par rdams dans le forum Web
    Réponses: 7
    Dernier message: 11/10/2005, 20h09
  5. Réponses: 4
    Dernier message: 02/06/2004, 16h35

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