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

Shell et commandes GNU Discussion :

Compter le nombre de lignes en fonction d'une variable.


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Par défaut Compter le nombre de lignes en fonction d'une variable.
    Bonjour à tous.
    J'ai encore besoin de votre aide, vu mon gtres faible niveau en shell...

    Suite à une extraction awk j'obtiens un fichier de type : mois jour heure données @IP
    Je voudrai avoir le nombre de lignes par jour et par @IP, en sachant que le fichier s'incrémente tous les jours.

    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
    **********En entrée
    Mar 29 14:22:47 ns37799 aaaaaaaaaaaaaa 10.10.10.10
    Mar 29 14:23:13 ns37799 bbbbbbbbbbbbaze 9.9.9.9
    Mar 29 14:23:18 ns37799 gfqsfqsdfsdfqsdfqsdf 9.9.9.9
    Mar 29 14:23:23 ns37799 qsdfqsgsdgsdgsdfg 9.9.9.9
    Mar 29 14:23:32 ns37799 dsfgsdgsdfgsdf 10.10.10.10
    Mar 30 13:09:58 ns37799gsdgsdfgsdfgsdfg 9.9.9.9
    Mar 30 13:10:08 ns37799sdfgsdgsdgsdfg 10.10.10.10
    Mar 30 13:10:17 ns37799.....
     
    **********En Sortie
    Le Mar 29 - 2 connect avec 10.10.10.10, 
    Le Mar 29 - 3 connect avec 9.9.9.9
    Le Mar 30 - 1 connect avec 10.10.10.10, 
    Le 30 Mar - 1 connect avec 9.9.9.9
    Merci beaucoup de votre aide et de tout ce que vous pourrez faire.

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Tu peux t'inspirer de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{count[$2]++} END { for ( i in count ) print count[i] " fois pour " i }' FS=" " mon_fichier.txt
    D'autres solutions sont sans doute possibles.

    Cordialement,
    Idriss

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Par défaut
    Super merci beaucoup. je vais essayer de faire un double count pour avoir un résultat par date et par IP.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Par défaut Double count dans un awk
    Bonjour a Tous

    A partir d'un fichier contenant des dates, du texte et des @ip, je souhaiterais sortir le nombre d'adresses IP similaires par jour.

    une super réponse m'a été faite pour compter une seule variable, mais je n'arrive pas à le faire pour deux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{count[$2]++} END { for ( i in count ) print count[i] " fois pour " i }' FS=" " mon_fichier.txt

    **********En entrée.
    Mar 25 13:33:19 User: root From: 78.138.99.155 : Failed 
    Mar 25 14:11:23 User: root From: 78.138.99.155 : Failed 
    Mar 29 02:09:06 User: root From: 83.16.235.109 : Failed 
    Mar 29 02:09:09 User: root From: 83.16.235.109 : Failed 
    Mar 29 09:34:15 User: root From: 217.125.36.111 : Failed 
    Mar 29 09:34:18 User: root From: 217.125.36.111 : Failed 
    Mar 29 09:34:22 User: root From: 217.125.36.111 : Failed 
    
    **********En sortie.
    Mar 25, 2 tentatives par 78.138.99.155
    Mar 29, 2 tentatives par 83.16.235.109
    Mar 29, 3 tentatives par 217.125.36.111
    Merci beaucoup par avance.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    En s'inspirant de l'exemple donné :

    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
    $ cat plop 
    Mar 25 13:33:19 User: root From: 78.138.99.155 : Failed
    Mar 25 14:11:23 User: root From: 78.138.99.155 : Failed
    Mar 29 02:09:06 User: root From: 83.16.235.109 : Failed
    Mar 29 02:09:09 User: root From: 83.16.235.109 : Failed
    Mar 29 09:34:15 User: root From: 217.125.36.111 : Failed
    Mar 29 09:34:18 User: root From: 217.125.36.111 : Failed
    Mar 29 09:34:22 User: root From: 217.125.36.111 : Failed
     
    $ awk '{count[$1$2$7]++} END { for ( i in count ) print substr(i,1,5)", " count[i] " tentative(s) par " substr(i,6,length(i)) }' plop 
    Mar25, 2 tentative(s) par 78.138.99.155
    Mar29, 2 tentative(s) par 83.16.235.109
    Mar29, 3 tentative(s) par 217.125.36.111
     
    $

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Par défaut
    Merci beaucoup super réponse, rapide propre et fonctionnelle.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 11
    Par défaut double count ....suite
    Bonjour
    Vous m'avez bien aidé la semaine denrière pour réaliser un double count dans un awk.
    J'ai un souccis en fonction du format de la date.
    Je m'explique par l'exemple.

    Fichier source:

    Apr 9 22:42:58 User: root From: 202.197.184.78 : connexion Failed
    Apr 9 22:43:10 User: root From: 202.197.184.78 : connexion Failed
    Apr 10 02:17:44 User: root From: 190.209.87.51 : connexion Failed
    Apr 10 15:21:49 User: root From: 64.69.71.69 : connexion Failed

    Commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{count[$1$2$7]++} END { for ( i in count ) print substr(i,1,5)", " count[i] " tentative(s) par " substr(i,6,length(i)) }' log.txt
    Résultat:
    Apr10, 1 tentative(s) par 190.209.87.51
    Apr10, 1 tentative(s) par 64.69.71.69
    Apr92, 2 tentative(s) par 02.197.184.78

    ==> les dates à un chiffre décale tout le résultat.
    Si vous avez une idée je suis bien preneur.
    Merci.

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{ if( length($2) == 1 ) $2 = 0$2 ; count[$1 $2 $7]++} END { for ( i in count ) print substr(i,1,5)", " count[i] " tentative(s) par " substr(i,6,length(i)) }'
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ awk '{ if( length($2) == 1 ) $2 = 0$2 ; count[$1 $2 $7]++} END { for ( i in count ) print substr(i,1,5)", " count[i] " tentative(s) par " substr(i,6,length(i)) }' brol 
    Apr10, 1 tentative(s) par 64.69.71.69
    Apr10, 1 tentative(s) par 190.209.87.51
    Apr09, 2 tentative(s) par 202.197.184.78

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

Discussions similaires

  1. [XL-2010] Supprimer des lignes en fonction d'une variable en VBA
    Par JohnKel dans le forum Excel
    Réponses: 4
    Dernier message: 12/06/2015, 09h31
  2. Réponses: 3
    Dernier message: 28/10/2014, 14h15
  3. [XL-2007] Sélectionner ligne en fonction d'une variable
    Par Micdewe dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/01/2011, 08h37
  4. Calcul du nombre de lignes en fonction d'une condition
    Par didier roustand dans le forum Débutez
    Réponses: 7
    Dernier message: 27/01/2010, 18h32
  5. Réponses: 11
    Dernier message: 10/03/2007, 02h01

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