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

Applications et environnements graphiques Discussion :

besoin d'aide pour un script shell extrayant les données d'un fichier texte ou un fichier log


Sujet :

Applications et environnements graphiques

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut besoin d'aide pour un script shell extrayant les données d'un fichier texte ou un fichier log
    Bon après midi tous le monde
    je vuos adresse ce message car je suis maintenant bloqué depuis 3 semaines dans une application qui me géne beaucoup
    en effet je suis débutant en shell , et il m'est demandé dans le cadre de mon projet de réaliser un script qui lit les données a partir d'un fichier .log
    ces données sont sous la formes suivantes :
    15/01/10 11:41:38,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

    15/01/10 11:47:04,IDENT,OK,0,bioa,G545669,0,0,0.1,296,0,0,0,0,0

    15/01/10 11:47:18,IDENT,OK,0,bioa,G545477,0,0,0.2,195,0,0,0,0,0

    15/01/10 11:47:20,IDENT,OK,0,bioa,G545744,0,0,0.1,339,0,0,0,0,0

    15/01/10 11:49:12,IDENT,OK,0,bioa,G545889,0,0,0.2,406,0,0,0,0,0

    15/01/10 11:54:29,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

    15/01/10 11:56:59,IDENT,OK,0,bioa,G999975,0,0,0.2,460,0,0,0,0,0

    15/01/10 11:58:06,IDENT,OK,0,bioa,G180124,0,0,0.1,33,0,0,0,0,0

    15/01/10 11:58:46,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

    15/01/10 12:01:54,IDENT,OK,0,bioa,G545564,0,0,0.2,229,0,0,0,0,0

    15/01/10 12:02:02,IDENT,OK,0,bioa,G545906,0,0,0.3,408,0,0,0,0,0

    15/01/10 12:03:48,IDENT,OK,0,bioa,G545526,0,0,0.1,218,0,0,0,0,0

    15/01/10 12:04:54,IDENT,OK,0,bioa,G545589,0,0,0.2,246,0,0,0,0,0

    15/01/10 12:05:00,IDENT,OK,0,bioa,G180213,0,0,0.3,488,0,0,0,0,0

    15/01/10 12:09:15,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0

    16/01/10 09:59:42,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,V7,0,2,1,0,0,3,10

    16/01/10 10:30:13,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,V7,0,2,1,0,0,3,10

    16/01/10 10:42:10,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

    16/01/10 11:00:48,IDENT,OK,0,bioa,G544100,0,0,0.1,150,0,0,0,0,0

    16/01/10 19:12:14,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

    17/01/10 12:42:53,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

    17/01/10 17:11:16,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

    18/01/10 05:32:48,IDENT,OK,0,bioa,G999998,0,0,0.1,480,0,0,0,0,0

    18/01/10 06:14:21,IDENT,OK,0,bioa,G999998,0,0,0.1,480,0,0,0,0,0

    18/01/10 06:39:48,IDENT,OK,0,bioa,sansN1,0,0,0.1,486,0,0,0,0,0

    18/01/10 06:47:00,IDENT,OK,0,bioa,sansN1,0,0,0.1,486,0,0,0,0,0

    18/01/10 06:49:15,IDENT,OK,0,bioa,G999968,0,0,0.5,455,0,0,0,0,0

    18/01/10 07:36:02,IDENT,OK,0,bioa,G545684,0,0,0.1,310,0,0,0,0,0

    18/01/10 07:42:36,IDENT,OK,0,bioa,G545604,0,0,0.1,252,0,0,0,0,0

    18/01/10 07:52:01,IDENT,OK,0,bioa,G545550,0,0,0.2,223,0,0,0,0,0

    18/01/10 07:52:48,IDENT,OK,0,bioa,G545685,0,0,0.1,311,0,0,0,0,0

    18/01/10 08:00:23,AUTH_CTL_WODB_ID_ONLY_TERMINAL
    18/01/10 08:00:40,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

    18/01/10 08:01:22,IDENT,OK,0,bioa,g545588,0,0,0.1,245,0,0,0,0,0

    18/01/10 08:13:36,IDENT,OK,0,bioa,G545577,0,0,0.1,238,0,0,0,0,0

    18/01/10 08:16:45,IDENT,OK,0,bioa,G545423,0,0,0.1,174,0,0,0,0,0

    18/01/10 08:21:31,IDENT,OK,0,bioa,G545724,0,0,0.1,324,0,0,0,0,0

    18/01/10 08:21:55,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,G360938,0,2,1,0,0,3,10

    18/01/10 08:24:27,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0

    18/01/10 08:24:36,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,

    avec le premier champs est la date de la forme jj/mm/aa
    le fichier contient au moins un miller de ligne de cette forme , ce qui m'est demandé et de
    -lire le fichier
    -extraire dans une première phase les lignes qui repérensente la meme data
    -les recopier dans un autre fichier texte

    s'il vous pait j'ai besoin de votre aide dans mon sujet car j'en trouve plus le sulotion face à cette solution qui me bloque
    je vous ai envoyé un fichier joint pour vous expliquez la formes des lignes dans le fichier
    Fichiers attachés Fichiers attachés

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 568
    Points : 19 402
    Points
    19 402
    Par défaut
    mais...tu as peut-être déjà un début de script, que nous pourrions t'aider à faire fonctionner, pour faire ce qui t'est demandé
    ...
    ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    malheureusement j'ai formaté recemment le pc et j'ai perdu meme les scripts de test
    mais pour ne pas vous embeter dans l'écriture du script pouvez vous m'aider par exepmle a me donner :
    dans un permier temps un commade permettant de trouver une chaine de caractére dans un fichiet texte ?
    on procéde pas à pas

  4. #4
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    La commande sed permet d'extraire des lignes selon un motif (et même de les modifier).
    La commande grep permet elle aussi d'extraire des lignes selon un motif.

    Code exemple avec grep : Sélectionner tout - Visualiser dans une fenêtre à part
    grep "IDENT" <mon_fichier>
    ressortira toutes les lignes contenant "IDENT".
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Merci monsieur pour votre aide en effet ça bien marché concernant la recherche
    reste a voir comment faire extraire le résultat de recherche et l'écrire dans un autre fichier
    y a pas une fonction ou une methode à faire

  6. #6
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    Si on reprend le code de base précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep "IDENT" <mon_fichier> > <mon_fichier_bis>
    enverra toutes les lignes avec IDENT dans <mon_fichier_bis>.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  7. #7
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Bonjour haithem20080,

    Tu es nouveau sur ce site et je te fais quelques remarques:

    • Les questions doivent être très précises
    • Les exemples très clairs... et courts!

    Par exemple:
    Je dois extraire du fichier file_in toutes les lignes qui sont en double. Les données sont en format texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    15/01/10 11:41:38,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0
    15/01/10 11:47:04,IDENT,OK,0,bioa,G545669,0,0,0.1,296,0,0,0,0,0
    15/01/10 11:47:18,IDENT,OK,0,bioa,G545477,0,0,0.2,195,0,0,0,0,0
    Le fichier file_in ne doit pas changer, le fichier destination file_out doit contenir la ligne entière puis le numéro de ligne où elle apparait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    15/01/10 12:09:15,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0
    14
    16
    À cela, je donnerais le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort fichier_in | awk '{if ($0 == prev) {print $0; system("grep -n \"" $0 "\" fichier_in | cut -d : -f 1")} prev=$0}' > fichier_out
    Mais je suis sûr que ce n'est pas exactement ce que tu veux. Alors pose ton problème précisemment, sinon tu n'auras que des réponses vagues...
    Un problème bien posé est déjà résolu (H. Bergson).

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    en fait je vous remercie tous pour votre aide
    en effet j'ai le fichier .log qui contient la liste des événement faits par jour
    de ce fait la première tache était de chercher les évènement par date
    donc j'ai affecté la date que je voulais à une variable comme indique la commande si desosus
    echo donner la jour vous voulez récuperez
    read var
    par la suité j'ai fait une recherche dans le fichier et j'ai redirigé le résultat vers un fichier de sortie qui s'appelle a.log comme l'indique la commande suivante
    grep -i $var TourniquetE1.log> /home/sst/Bureau/a.log

    et j'ai obtenu ce que je voulais
    merci por tous le monde

Discussions similaires

  1. [MySQL] Besoin d'aide pour un script
    Par spespam dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/11/2008, 15h03
  2. [MySQL] besoin d'aide pour un script pour la numérotation de page
    Par rysis83 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/01/2008, 20h59
  3. Aide pour un script shell
    Par vanitom dans le forum Linux
    Réponses: 2
    Dernier message: 07/04/2007, 19h02
  4. Besoin d'aide pour modif script
    Par Abdias dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2006, 07h00
  5. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36

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