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 :

analyse tres complexe de fichier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Par défaut analyse tres complexe de fichier
    Salut Au forum

    Bon voila ma preoccupation..

    je dois analyser avec Perl un fichier log comportant comme vous allez le constater un certain nombre de données...

    je dois "Grouper " ces données en fonction des routeurs logiques (logical-routers), mais le probleme est que ce fichier etant generé automatiquement
    par le serveur, il doit etre traité tel quel par le programme, et seul le premier "bloc comportant un routeur logique est declaré par logical-routers"...


    Explemple:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    ...
    ...
    ...
    logical-routers {
        m10_0_as1 {
            interfaces {
                ge-0/1/0 {
                    unit 50 {
                        vlan-id 50;
                        family inet {
                            address 218.1.xx.xxx/xx {
                                vrrp-group 50 {
                                    virtual-address 218.x.95.xxx;
                                    priority 200;
                                    preempt;
                                    accept-data;
                                }
                            }
                        }
                    }
                    unit 51 {
                        vlan-id 51;
                        family inet {
                            address 172.xx.xx.82/xx {
                                vrrp-group 51 {
                                    virtual-address 172.16.xx.xx1;
                                    priority 200;
                                    preempt;
                                    accept-data;
                                }
                            }
                        }
                    }

    je dois ressortir le nom du routeur (ici m10_0_as1), ensuite son interface ( ge-0/1/0), ensuite les unit appartenant
    a cet interfaces (de 50,51,....61.....à 185 par exemple j´ai pas tout mis pr ne pas faire bcp de place),
    sous son unit j doit ressortir son Vlan-Id,address, ensuite passer au suivant,

    et des qu´une nouvelle interface de ce meme logical-routers est trouvé, refaire la meme operation pour cet interface

    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
     
    a la suite de celui du haut:
     
     ge-1/1/0 {
                    unit 11 {
                        vlan-id 11;
                        family inet {
                            address 1xx.xx.xxx.6/xx;
                        }
                    }
                }
            }
     
     
     ge-1/1/0 est la nouvelle interface mais n´est pas explicitement annoncé coe la haut par le mot  interfaces

    Par la suite il y aura encore un nouvel logical-routers:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
     m10_0_vr1 {
            interfaces {
                ge-1/0/0 {
                    unit 201 {
                        vlan-id 201;
                        family inet {
                            filter {
                                output fil-1/0/0.201;
                            }
                            address 1x2.xx.88.2/aa {
                                vrrp-group 201 {
                                    virtual-address 1xx.1x.xx.1;
                                    priority 200;
                                    preempt;
                                }
                            }
                        }
                    }
                    unit 240 {
                        vlan-id 240;
                        family inet {
                            address xx8.1.x7.xx/xx {
                                vrrp-group 240 {
                                    virtual-address 218.x.7x.xx;
                                    preempt;
                                    accept-data;
                                }
                            }
                        }
                    }
     
    ici m10_0_vr1 est le nom du nouveau logical-routers, et en dessous son interface et les données de cet interface coe la haut
    Qu´il faut traiter comme celui du haut, tout cela c´est dans le meme fichier, entre eux il y a encore un tas d´autres infos mais
    seules celles ci nous interressent et il faut les recuperer et les afficher...

    je ne sais pas comment proceder, j´ai essayer des methodes sans resultat, je m´en remets aux experts du forum pour me faire avancer...

    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
    C'est une machine à état très simple, mais je ne sais pas si tu es familier du concept ?

    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Par défaut
    Jamais entendu parler mais je suis preneur si vous etes disposé à m´aider . De toute facon je dois le resoudre ce probleme...

    Au fait ca serait pas l´algorithme de Turing Machine?

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Par défaut
    Saluttttttttttttttttttttttt

    Je n´ai pas avancé d´un iota.....malgré toutes mes recherches sur le net. Peux t-on m´aider?
    Merci

  5. #5
    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
    Il faut en fait que tu retiennes où tu en es, le plus simple est d'utiliser une pile. A chaque ligne rencontrée, tu testes si elle se finit par une accolade ouvrante (avec des espaces derrière éventuellement), et dans ce cas tu l'empiles sur la pile des portée. Si c'est une accolade fermante seule sur sa ligne, tu dépiles une portée. Avec ça tu sauras toujours où tu en es dans ton fichier en regardant le contenu de la pile. Tu peux ainsi traiter les autres lignes selon l'endroit où tu te trouve.
    Pour faire une pile en Perl, il suffit d'utiliser un tableau ordinaire avec push() et pop().

    --
    Jedaï

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Par défaut
    Hummm je continue a chercher mais sans avancer ...

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Par défaut
    et si on utilisait le XML pour resoudre ce probleme??? quelqu´un a t-il une idée? sous Linux (Suse 9)...

Discussions similaires

  1. [SimpleXML] Analyser un très gros fichier XML
    Par Paulux1 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/02/2008, 02h53
  2. Réponses: 21
    Dernier message: 24/09/2007, 15h12
  3. [DOS] Renommage complexe de fichiers
    Par juan64 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 20/04/2007, 15h27
  4. Analyse complexe de fichier
    Par ecthelion dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2007, 11h10
  5. Réponses: 8
    Dernier message: 28/03/2006, 08h04

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