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 :

grep en Perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Par défaut grep en Perl
    Bonjour a tous,

    Je souhaite filtrer toutes les lignes d'un log a travers un fichier X ou sont toutes les lignes que je reconnait. La facon de le faire est de prendre chaque ligne du log et de verifier a chaque fois si elle fait partie du fichier de ligne que je connais (fichier X), dans le cas ou je ne la connait pas (qu'elle n'est pas dans mon fichier X) je la copie dans un fichier Z, et ainsi de suite.

    Le grep que j'utilise est le suivant:
    if (! (scalar grep {$line =~ /$_/sgi} @fichier_X) { ... copy $line dans Z }

    Cette operation marche tres bien mais sur une grosse quantite de logs est trop longue.
    1- On m'a conseille d'utiliser un grep system (en linux) ce qui raccourcierait enormement l'operation, est ce que qqun pourrait me dire comment faire ceci??
    2- Est que a part ca il y a une possibilite d'optimiser l'operation ?

    Merci

  2. #2
    Expert confirmé
    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
    Par défaut
    Je ne pense pas que le grep system accélère l'opération tant que cela, par contre tu peux faire beaucoup mieux en Perl, selon le contenu de ton fichier X. Si ton fichier X contient les lignes exactes à supprimer (ou même s'il est possible de corriger les éventuelles petites différences par une simple opération de normalisation), il est sans doute possible de passer d'une complexité en O(n*m) à une complexité en O(n). Et même si ce n'est pas le cas, utiliser Regexp::Assemble permettra sûrement d'améliorer les choses.

    --
    Jedaï

Discussions similaires

  1. perl grep extraction du mot exact
    Par djbad dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2014, 11h54
  2. syntaxe perl grep
    Par triana dans le forum Langage
    Réponses: 2
    Dernier message: 26/04/2013, 13h21
  3. Grep : comment récupérer contenu mémoire équivalent PERL \1
    Par livebe dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/01/2012, 15h29
  4. Perl- Tester le résultat d'un grep
    Par dark_angel91 dans le forum Langage
    Réponses: 4
    Dernier message: 16/05/2011, 12h45
  5. [PERL] un grep qui ne fonctionne pas bien
    Par LE NEINDRE dans le forum Langage
    Réponses: 6
    Dernier message: 03/11/2005, 17h37

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