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

Linux Discussion :

grep spécial en unix


Sujet :

Linux

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 87
    Points : 70
    Points
    70
    Par défaut grep spécial en unix
    Bonjour,

    J'ai un petit problème et j'espère que vous allez pouvoir m'aider.

    Voici un exemple de fichier que je traite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DEBUG|2012-04-25 16:56:40,239|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023304, 1, 9900023301, 9900023301, 0000000000000000000000099000233007, 161744, 20120212000000, , Disque, 9900023375, , , 433622, 42267, Data, Blabla, 283, Blabla, Autre (GR0003), , , , 134, 2, , , , 621, , 2012032500100]
    DEBUG|2012-04-25 16:56:45,608|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023307, 1, 9900023301, 9900023301, 0000000000000000000000099000233007, 401853, 20120212000000, , AC, 9900023378, , , 433622, 42789, Data, Blabla, 283, Blabla, ABCD, , , , 101, 0, , , gratuit, 621, , 2012032500100]
    DEBUG|2012-04-25 16:56:47,333|MIT 0|module.MIT|[processEventPOLvice()] strArrayList = [POL, 9900023317, 9900023317, 1, 0000000000000000000000099000233008, 9900023301, 9900023301, 9900023301, 9900023301, 9923, 20120212000000, , 621, 799000233, TEST_LC_MOAT302, 990002331, 14 RUE DE LA VERRERIE, , , New York, 92190, 250, BLNT, , , , , , , , 0, , , , , 000, , , 0, M., -, -, , , , ]
    DEBUG|2012-04-25 16:56:49,039|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023308, 1, 9900023301, 9900023301, 0000000000000000000000099000233008, 401746, 20120212000000, , AC, 9900023379, , , 433622, 42129, Data, Blabla, 283, Blabla, Présentation du numéro, , , , 101, 0, , , gratuit, 621, , 2012032500100]
    DEBUG|2012-04-25 16:56:51,783|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023309, 1, 9900023301, 9900023301, 0000000000000000000000099000233008, 401742, 20120212000000, , AC, 9900023380, , , 433622, 42125, Data, Blabla, 283, Blabla, Vitesse Très Haut Débit Mobile, , , , 125, 0, , , inclus, 621, , 2012032500100]
    DEBUG|2012-04-25 16:57:03,680|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023316, 1, 9900023301, 9900023301, 0000000000000000000000099000233008, 401720, 20120212000000, , AC, 9900023387, , , 433622, 42058, Data, Blabla, 283, Blabla, Blabla , , , , 125, 0, , , gratuit, 624, , 2012032500100]
    DEBUG|2012-04-25 16:57:05,089|MIT 0|module.MIT|[processEventOverride()] strArrayList = [OVNI, 9900023300, 9900023317, 2, 20120212000000, , 1400, 9900023387, , AC, 9900023301, , 0000000000000000000000099000233008, , ]
    DEBUG|2012-04-25 16:57:06,679|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023318, 1, 9900023301, 9900023301, 0000000000000000000000099000233008, 401744, 20120212000000, , AC, 9900023389, , , 433622, 42127, Data, Blabla, 283, Blabla, Double , , , , 101, 0, , , gratuit, 621, , 2012032500100]
    DEBUG|2012-04-25 16:57:08,758|MIT 0|module.MIT|[processEventNYC()] strArrayList = [NYC, 9900023300, 9900023319, 1, 9900023301, 9900023301, 0000000000000000000000099000233008, 530199, 20120212000000, , UGC, 9900023390, , , 433622, 42083, Data, Blabla, 283, Blabla, Pack , , , , 355, 2, , NULLE, , 621, , 2012032500100]
    Je souhaite calculer pour chaque type (NYC, POL, OVNI) le temps total d'exécution.

    ex: 16:56:40,239 = 16h56min40sec239millisec
    16:56:45,608
    Temps mis pour NYC (1) =(45-40)*1000 + (608-239)
    Là je donne l'exemple de 2 lignes de type NYC. Je veux faire ceci pour tous les NYC (somme par type).

    J'espère avoir été clair.

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu fais une passe par thèmes NYC, POL OVNI
    que tu fais un calcul temps ligne-ligne_précédente
    et tu additionne les résultats.

    tout bêtement sur le principe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    itération
    tu extrait la colonne n°2
    tu vires la dates si tes temps ne peuvent pas dépasser 24heures: ça simplifiera
    tu soustrait (attention c'est du minutage donc penser au reports entres secondes/minutes et heures qui n'est pas à 100 !!)
    tu ajoutes ça au résultat du thème en cours
    fin itération

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [fp@ln ~/tmp] sed '/NYC/ !d;s/DEBUG|//;s/,.*//;s/.* //' t
    16:56:40
    16:56:45
    16:56:49
    16:56:51
    16:57:03
    16:57:06
    16:57:08
    [fp@ln ~/tmp]
    c'est une mauvaise façon de sélectionner le champs qui t'intéresse mais c'est juste pour que tu comprennes au fur et à mesure comment faire

    après il faudra raccourcir la commande sed au seul nécessaire.

    après quoi tu as plus que tes calculs à faire faire au script ...

    y'a plus qu'à écrire le script qui intégré le tout.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 582
    Points : 19 453
    Points
    19 453
    Par défaut
    Bonjour,

    si, pour NYC, on fait :
    Code très grossièrement : Sélectionner tout - Visualiser dans une fenêtre à part
    "2012-04-25 16:57:08,758" - "2012-04-25 16:56:40,239"
    ça convient également ?

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

Discussions similaires

  1. Grep d'une chaine avec caractère spécial "É" "È" , ne renvoie rien.
    Par erox44 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/05/2014, 09h55
  2. Problème script unix pour faire un grep ds 1 boucle while
    Par mounou2301 dans le forum Shell et commandes POSIX
    Réponses: 1
    Dernier message: 16/01/2012, 08h59
  3. Réponses: 2
    Dernier message: 29/04/2010, 16h50
  4. [grep] commande spéciale
    Par scolopendra dans le forum Langage
    Réponses: 6
    Dernier message: 30/04/2008, 15h09
  5. Grep et commandes UNIX
    Par romeo9423 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 06/02/2006, 18h47

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