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] Trie par nombre d'occurence a partir d'éléments présent dans une variable


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Par défaut [Perl] Trie par nombre d'occurence a partir d'éléments présent dans une variable
    Bonjour,

    Quel sujet bien compliqué n'est ce pas ?
    Laissez moi vous expliquer clairement ce que je n'arrive pas a programmer.


    Mon script doit lire un fichier acces.log qui se presente sous cette forme simplifié
    (c'est pas dur...je l'accorde...pas de souci sur ce point)

    xxxxxxxxxxxxx.com cdfrzczfvretyhryh
    www.lllllllllllllllllllll.com dedefdzfczerfzfzfr
    www.zzzzz.com fcoàfjozrifjzopr
    lllllllllllllllllllll.com njnjnjnjnjijklpmvretyhryh
    www.xxxxxxxxxxxxx.com aaaadfdcfkbhbkuljnl,pmyhryh
    lllllllllllllllllllll.com mqaazsc


    Ensuite: (attention ça se corse mais grave !)

    A partir des éléments connu dans un tableau précedent $table[0] :

    xxxxxxxxx
    llllllllllllllllll
    zzzzzzzzzz


    Celui-ci doit trier les lignes de ce log maniere décroissante (suivant le nombre d'occurence présente dans ce access.log)

    De tel sorte que si par exemple on a 3 fois llll 2 fois xxxx, 1 fois zzzzzz et le reste les élèment non présent dans le tableau $table[0]: on est

    lllllllllllllllllllll.com njnjnjnjnjijklpmvretyhryh
    lllllllllllllllllllll.com dedefdzfczerfzfzfr
    lllllllllllllllllllll.com mqaazsc
    xxxxxxxxxxxxx.com cdfrzczfvretyhryh
    xxxxxxxxxxxxx.com aaaadfdcfkbhbkuljnl,pmyhryh
    zzzzz.com fcoàfjozrifjzopr
    nonpresent dans la table $table[0].com czefvrepv,egrgth
    nonpresent dans la table $table[0].com czefvrepv,epbt,eptb,eprm


    Je demande l'aide à quelq'un qui saurais m'aider, je suis pas le genre de mec a demander de l'aide pour un rien, j'avoue que c'est très important pour moi et que je suis HS quant aux compétences que ca demande...

    Merci d'avance,

  2. #2
    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
    Utilises la fonction sort sur ton tableau.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Par défaut
    Merci pour cette réponse.

    Je savais que sort allais devoir etre utilisé, ce que je ne sais pas faire c'est trier en fonction de mon tableau $table[0] qui contien les elements a recherche dans mon fichiers access.log puis comment trier ces élèment par nombres d'occurence.

    sort oui... mais apres ? comment ?

  4. #4
    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
    Il faut que tu nous donnes un peu de ton code. Difficile de t'aider sur du virtuel

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Par défaut
    ok,

    ca c'est mon code quis lis mon fichier reference qui va servir de base pour chercher mes occurences dans mon fichiers access.log:

    les infos de reference sont dans @table[0]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @lignes_vhost = ("");
    open(FILE, "</etc/apache2/vhost.conf");
    while(<FILE>){
            push(@lignes_vhost,$_);
    }
    close(FILE);
     
    for(@lignes_vhost){
     
            @test = split(/:/, $_);
            print "avant les : @test[0]\n";
            print "apres les : @test[1]\n";
            }
    je doit continuer mon script donc en triant le nombre d'occurence d'élèment (en décroissant) de mon fichier log en me basant sur le contenu de ce tableau.

  6. #6
    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
    Pourriez vous faire un effort la prochaine fois de corriger les fautes d'orthographes. De plus, lorsque vous collez votre code, veuillez utiliser les balises codes (sélectionner votre code et cliquer sur #).

    Merci

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/07/2010, 16h52
  2. Réponses: 1
    Dernier message: 22/10/2007, 15h02
  3. [MySQL] Recherche puis classement par nombre d'occurences
    Par adrien357 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/07/2007, 10h22
  4. [MySQL] Comment récupérer le nombre d'élément présent dans une table
    Par TrX314 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/04/2007, 22h20
  5. Classement de résultats par nombre d'occurences
    Par pc.bertineau dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/03/2007, 18h07

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