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 :

Extraire des données d'un fichier log pour les rediriger dans une cellule Excel spécifique avec Awk


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire des données d'un fichier log pour les rediriger dans une cellule Excel spécifique avec Awk
    Bonjour a tous,

    j'ai besoin de votre aide sur une sujet svp, je dois écrire un résultat d'une recherche de pattern dans d'un fichier log vers un fichier excel et dans une cellule bien spécifique exemple voici mes patterne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/Aug /&&/bounced/'  mail.log   | wc -l
    mais c'est après que je galère je ne peux que mettre le résultat dans la première cellule avez vous une idée afin que je puisse choisir mes cellules.


    Merci par avance.

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Bonjour et Bienvenue,

    awk | wc -l est une aberration, je dirais même une abomination. Cela mérite même (tu commences fort )
    De plus, tu utiliserais awk correctement, tu résoudrais ton problème, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ wc -l fichier.txt 
    15 fichier.txt
    $ awk '/0.1/&&/5/' fichier.txt | wc -l
    2
    $ awk '/0.1/&&/5/{A++}END{print A}' fichier.txt 
    2
    $ awk '/0.1/&&/5/{A++}END{print ";;;;"A";;;;"}' fichier.txt 
    ;;;;2;;;;
    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire des données d'un fichier log pour les rediriger dans une cellule excel spécifique Awk
    Bonjour,
    je te remercie je vais essayer chaque ligne oui je suis un novice alors je débute par des bêtises
    Cordialement

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    re-bonjour
    sur awk '/0.1/&&/5/{A++}END{print ";;;;"A";;;;"}' fichier.txt >test.csv peux tu me dire comment atteindre la ligne 5 colonne E du fichier csv stp

    Merci par avance

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Ta demande n'est pas claire, tu as l'air de vouloir modifier un fichier csv déjà existant...
    Si c'est le cas, pose correctement ton problème et donne un exemple du genre, fichier.csv avant puis fichier.csv après.
    Cordialement.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire des données d'un fichier log pour les rediriger dans une cellule excel spécifique Awk
    Bonjour,
    dans mon début de script je récupère des données d'un log et les additionnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk '/Aug /&&/bounced/' mail.log |wc -l
    resultat: 14415

    Ce résultat je souhaiterai le mettre dans un fichier csv colonne 5 ligne 2

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Posons la question autrement :
    Souhaites-tu modifier un fichier .csv existant ou créer un fichier .csv avec uniquement cette valeur dans la case annoncée ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire des données d'un fichier log pour les rediriger dans une cellule excel spécifique Awk
    Bonjour al1_24,
    je souhaite en créer un, avec un rajout de plusieurs informations dedans.
    Cordialement

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Continuons à avancer...
    Avec cette seule valeur ton fichier .csv serait de la forme :
    Quelles autres informations à ajouter dedans ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    C'est vraiment trop vague ton besoin.
    Exemple, considérons que le séparateur de colonne dans ton csv est le point-virgule ";" .
    Ici, nous créons le fichier et je parle bien de créer le fichier pas de le modifier (donc si le fichier existe déjà, nous l'écrasons).
    Dans l'exemple ci-dessous, nous allons mettre le résultat sur la ligne 2 colonne 5 (en considérant que la numerotation des lignes et des colonnes commence à 1 et non pas 0).
    De plus, comme rien n'est précisé, je ne peux que considérer le cas le plus simple: nous n'avons que 2 lignes et 5 colonnes et que tous les champs sont vides sauf le champs ligne 2 colonne 5.
    Donc en reprenant l'exemple précédent, cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk 'BEGIN{A=0}; /Aug /&&/bounced/{A++}; END{ print ";;;;" ; print ";;;;"A }' mail.log >fichier.csv
    Mais, ensuite, je ne vois pas trop comment tu vas remplir tes autres champs, puisque l'on vient de les remplir avec du vide...
    Cordialement.

  11. #11
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    oui, tu es en effet beaucoup trop vague sur ton fichier csv

    si tu as 36 valeurs, il faut peut être générer un modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ,,%errs%,%cout%,,,,
    ,,,,%total%,,
    puis utiliser un remplacer %key%
    $moi= ( !== ) ? : ;

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2015
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire des données d'un fichier log pour les rediriger dans une cellule excel spécifique Awk
    Bonjour,
    je vous remercie pour vos réponses je vais tester.
    je suis désolé si vous n'avez pas bien compris ce que je voulais dire, c'est comme si je voulais piocher des informations dans un log et mettre en forme style tableau xls dans un ficher csv.
    Cordialement

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par karimm1 Voir le message
    mais c'est après que je galère je ne peux que mettre le résultat dans la première cellule avez vous une idée afin que je puisse choisir mes cellules.
    Citation Envoyé par karimm1 Voir le message
    peux tu me dire comment atteindre la ligne 5 colonne E du fichier csv stp
    Citation Envoyé par karimm1 Voir le message
    Ce résultat je souhaiterai le mettre dans un fichier csv colonne 5 ligne 2
    Citation Envoyé par karimm1 Voir le message
    je suis désolé si vous n'avez pas bien compris ce que je voulais dire, c'est comme si je voulais piocher des informations dans un log et mettre en forme style tableau xls dans un ficher csv.
    Un peu comme si tu partais d'un tableau que tu crées vide.
    Puis tu calcules un nombre 14415 que tu voudrais mettre à la colonne 5 ligne 2 dans le tableau.
    Puis tu calcules un autre nombre que tu voudrais mettre dans une autre case du tableau.
    C'est ça?

    En gros, tu cherches des accesseurs de tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    value := calcul de la value
    mon_tableau.set(col, row, value)
    ou
    mon_tableau[col, row] :=  value)
    Un peu comme si tu voulais scripter Excel...

    C'est pas compliqué: il suffit de créer un fichier-tableau vide (avec plein de ';'), puis le lire en ram avec awk, en modifier une "cellule" et sauver le fichier...

    Petit challenge pour les awkers fous!

Discussions similaires

  1. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 15h10
  2. Extraire des données d'un fichier Log (.dat)
    Par Zildijan dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 19/02/2013, 13h52
  3. [PEAR] Extraire des données d'un fichier CSV pour en faire un PDF
    Par kleyde89 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/05/2011, 10h16
  4. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  5. Réponses: 2
    Dernier message: 10/09/2007, 16h40

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