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 :

Perl- Tester le résultat d'un grep


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut Perl- Tester le résultat d'un grep
    Bonjour ;
    Mon problème est dans le teste du résultat grep or j'ai écrit le bout de code suivant:
    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
    18
    19
    20
    #!/usr/bin/perl
     
    open (SORTIE, ">res.txt") or die ("probleme d'ouverture");
     
            if (-e "/etc/sysctl.conf"){
     
                             $cmd=" grep  net.ipv4.icmp_echo_ignore_broadcasts  /etc/sysctl.conf ";
            if ($cmd ne ""){
    								exec "$cmd 1>res.txt ";
                                    print SORTIE exec($cmd);
     
                                     }
                            else {
                                  print SORTIE "La chaine n'existe pas dans le fichier\n";  
                                    }}
            else {
                    print SORTIE " Le fichier n'existe pas\n ";}
     
     
    close(SORTIE);

    Lorsque je lance ce script avec "net.ipv4.icmp_echo_ignore_broadcasts" qui ne se trouve pas dans le fichier /etc/sysctl.conf , j'ai l'impression au vu du fichier res.txt qu'il rentre toujours dans le bloc if.

    Pourriez vous m'éclairer svp?

    (P.S: soyez indulgents si j'ai écrit de grosses bêtises, je débute...)

  2. #2
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Points : 322
    Points
    322
    Par défaut
    Je ne comprends pas l'intérêt de ton if.
    Tu pourrais détailler ce que tu veux faire ?

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    J'ai oublié dans le if il ya un if($cmd ne "")

    je veux tester si une un ligne existe dans un fichier si oui il faut l'afficher dans mon fichier txt sinon un message doit s'afficher dans le fichier maleureusement dans ce 2ème cas rien n'est s'affiché dans res.txt

  4. #4
    Membre averti

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Points : 322
    Points
    322
    Par défaut
    Dans ce cas, fais tout en Perl et évite les appels de fonctions externes.
    Une méthode simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    open( F, "/etc/sysctl.conf" ) or die "ne peut ouvrir le fichier : $!\n";
    my $ligneExist = 0;
    while( $ligneExist == 0 and defined( my $l = <F> ) ) {
      $ligneExist = 1 if $l =~ /net.ipv4.icmp_echo_ignore_broadcasts/;
    }
    # Si la ligne existe
    if ( $ligneExist == 1 ) {
      do_something;
    }
    close F

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    Merci pour votre aide !! je travaille sur la sécurisation du réseau intelligent et ce petit script va vraiment m'aider merci encore

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

Discussions similaires

  1. tester le résultat d'un grep
    Par sempire dans le forum Linux
    Réponses: 1
    Dernier message: 28/05/2009, 00h54
  2. Tester le résultat d'une requête
    Par fregolo52 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/10/2008, 16h35
  3. [5.1.8] Tester le résultat d'une invite
    Par raoudi57 dans le forum Débuter
    Réponses: 2
    Dernier message: 11/08/2008, 12h29
  4. Perl Et Récuperation Résultat Sql
    Par GOTRUNK dans le forum SGBD
    Réponses: 4
    Dernier message: 09/06/2006, 12h36

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