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

Programmation et administration système Perl Discussion :

Compter le nombre de fois ou une variable apparait.


Sujet :

Programmation et administration système Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 66
    Points
    66
    Par défaut Compter le nombre de fois ou une variable apparait.
    Bonjour.
    J'ai un petit problème: j'ai fais un script perl qui parcourt un fichier de log et qui me remonte une liste de numéro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while (<FILEH>) {
    	if( $_ =~ /Called Party Number i = 0xA1/)
    	{
    		@res=split(/'/ , $_);
    		$nb_called = $res[1];
    	}
    }
    mon nb_called peut être différent à chaque fois que la condition est vrai. Et au final, je voudrais compter le nombre de chacune des valeurs différentes qui me sont retournés par cette condition.
    Par exemple:
    9106: 15 fois
    9845: 2 fois
    ...

    Comment puis je faire? (je débute, n'hésitez pas à détailler!

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Points : 40
    Points
    40
    Par défaut
    Sur le principe, personnellement j'utiliserai un hash.

    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
     
    use strict;
    use warnings;
    ...
    my %nb_called;
    while (<FILEH>) 
    {
    	if( $_ =~ /Called Party Number i = 0xA1/)
    	{
    		my @res=split(/'/ , $_);
     
    		if (exists $nb_called{$res[1]}) {$nb_called{$res[1]} += 1}
                    else {$nb_called{$res[1]} = 1} #creation de l'entree si premiere fois
    	}
    }
     
    foreach my $key (sort {$a <=> $b} (keys %nb_called))
    {
           print "$key: $nb_called{$key} fois\n";
    }
    ...
    Sans présumer du resultat de la regexp et du split mais ils me paraissent bizarre. Avec un exemple du fichier ce serait mieux....

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/05/2015, 09h33
  2. [SimpleXML] Compter le nombre de fois ou une balise apparait dans un fichier xml.
    Par Krabbos dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 07/06/2011, 12h20
  3. Réponses: 4
    Dernier message: 06/12/2007, 16h46
  4. Réponses: 2
    Dernier message: 22/06/2006, 13h59
  5. Réponses: 2
    Dernier message: 06/01/2006, 23h18

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