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 sur fichier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut grep sur fichier
    bonjour,

    Je voudrai savoir si mon fichier toto.txt contient des erreurs et ressortir la ligne dans un fichier erreur.log.

    En fait , je veux grepper, les mots erreur, error, bad......

    comment puis je faire ??

    merci pour vos solutions

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 896
    Par défaut
    A grands coup de regexps ?
    Ca semble assez facile pour peu que ton fichier soit bien explicite (d'ailleurs, peut-on en voir un morceau d'exemple ?).

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut .....
    on peut trouver où des exemples de regexps ??


    exemple de ce que l'on peut trouver dans le fichier toto.txt

    [Native Error code: 3621]
    [Message Class: 10]
    [Message State: 0]

  4. #4
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 896
    Par défaut
    Notre FAQ, pardi ! Djibril nous a écrit de superbes articles sur le sujet : http://perl.developpez.com/faq/?page=sectionB7

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut ......
    je dois vraiment etre pas trés bon, parce que je ne retrouve pas d'exemple ou de script sur lequel , je pourrai m'inspirer.

    si quelqu'un veut bien m'aider !!!

    merci d'avance

  6. #6
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 896
    Par défaut
    Hello

    Voici un code simple : il se contente de t'afficher qu'il a trouvé le motif Native Error:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #!/usr/bin/perl -w
     
    use strict;
     
    open FILE,"< toto.txt" or die "$!\n";
    while(<FILE>){
            if(/Native\sError/){
                    print "Native error found";
            }
    }
    close FILE;
    Attention, code non testé. Mais cela peut t'inspirer.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    essaye déjà d'ecrire toi même le script et on va t'aider si possible.
    piste :
    -ouverture de fichier en lecture
    -ouverture de fichier en ecriture
    - traitement des lignes (regex)
    - print dans error.log
    - fermeture fichiers
    et c'est fini

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut ....
    voici mon script !!

    mais je ne comprends pas la fonction regexps ?? c'est quoi ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    my $FicLog="L:/Solendi/EXP/GRC/LOG/toto.txt";
    my $Erreur = "";
     
    open (FIC_LOG, "<$FicLog") ;
        while ($ligne = <FIC_LOG>)
       {
             $Erreur = grep {\error\} $ligne;
     
       }
     
    close (FIC_LOG);

  9. #9
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 896
    Par défaut
    Je t'ai grillé Djibril !!!
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut

  11. #11
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut ......
    En quoi tu m'as grillé ?? je vois pas le rapport avec ma question !!

  12. #12
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut .....
    enfin pour info, ça ne fonctionne toujours pas !!!

  13. #13
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    GLdavid t'as donné la reponse. Adapte le à tes besoins

  14. #14
    Mr6
    Mr6 est déconnecté
    Membre émérite

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    et à la limite, s'il n'y a pas de traitement spécifique derrière, pourquoi ne pas FAIRE un grep ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #grep err(eu|o)r|bad toto.txt > erreur.log
    ou qqch comme ca

    @+
    Mr6

  15. #15
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    c'est du perl, pas du ksh, je ne suis pas sur que tu puisses rediriger des grep dans un fichier par le >>.

  16. #16
    Mr6
    Mr6 est déconnecté
    Membre émérite

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Par défaut
    bah tu testes et on en reparle sur mon aix ca marche pour sûr 8)
    par contre, je mets la regex entre double quotes contrairement à mon exemple (qui n'était que de principe, et non testé). celà dit, si tu as d'autres traitements à faire sur tes fichiers derrière le grep en lui-même ne t'intéressera pas.
    tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while (<<FIC_LOG>) {
         $erreur.= $_ if /error/;
    }

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/01/2010, 14h10
  2. [Grep] RegEx sur fichier avec séparateur ";"
    Par Ticoche dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 20/02/2009, 16h12
  3. grep sur plusieurs fichiers
    Par otaquet dans le forum Administration système
    Réponses: 1
    Dernier message: 03/03/2008, 11h35
  4. grep sur les fichiers sans extension
    Par magic charly dans le forum Linux
    Réponses: 4
    Dernier message: 05/12/2006, 14h27
  5. grep sur fichier
    Par vince2005 dans le forum Langage
    Réponses: 1
    Dernier message: 15/03/2006, 13h21

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