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 :

Script diff et concaténation de lignes


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Script diff et concaténation de lignes
    Bonjour,J'ai besoin d'un coup de main pour comparer des fichiers de log.
    J'ai vu que la commande diff permet de faire cela, mais je suis un peu mauvais.

    J'ai des fichiers de logs qui sont générés à heures fixes dans un répertoire:
    Inventory_test-2018_02_15-15h22.log
    Inventory_test-2018_02_15-16h22.log
    Inventory_test-2018_02_15-18h22.log
    Inventory_test-2018_02_15-19h22.log

    Ce que j'aimerai faire c'est:
    - supprimer les 7 premières lignes de chaque dernier fichier log généré
    - concaténer chaque lot de 3 lignes en une seule
    - obtenir un fichier texte avec la différence entre les 2 derniers fichiers logs générés (un fichier lignes_générées.log et un fichier lignes supprimées).

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    Bonjour,
    obtenir un fichier texte [...] (un fichier lignes_générées.log et un fichier lignes supprimées).


    les deux premiers points se font avec un seul sed
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Alors j'ai trouvé 2 ou 3 éléments mais je sais pas comment les relier entre eux.

    trouver les 2 derniers fichiers générés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ll -rt *mon_log.log* | tail -2 | awk '{print$9}'
    Chercher les lignes qui ont été ajoutées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    diff mon_log_ancien.log mon_log_récent.log | grep \> > lignes_ajoutees-`date +%Y_%m_%d-%Hh%M`.log
    Chercher les lignes qui ont été supprimées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    diff mon_log_ancien.log mon_log_récent.log | grep \> > lignes_supprimees-`date +%Y_%m_%d-%Hh%M`.log
    Pour la concaténation c'est finalement inutile. Mais merci quand même.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Je ne sais pas ce que tu cherches vraiment. Ici, un simple grep ne suffit-il pas ?

    Le fichier vieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ cat log1.log
    jeudi 15 février 2018, 12:22:23 (UTC+0100)
    mercredi 14 février 2018, 12:22:23 (UTC+0100)
    mardi 13 février 2018, 12:22:23 (UTC+0100)
    lundi 12 février 2018, 12:22:23 (UTC+0100)
    dimanche 11 février 2018, 12:22:23 (UTC+0100)
    samedi 10 février 2018, 12:22:23 (UTC+0100)
    vendredi 9 février 2018, 12:22:23 (UTC+0100)
    Le fichier jeune:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat log2.log
    jeudi 15 février 2018, 12:22:23 (UTC+0100)
    mercredi 14 février 2018, 12:22:23 (UTC+0100)
    lundi 12 février 2018, 12:22:23 (UTC+0100)
    dimanche 11 février 2018, 12:22:23 (UTC+0100)
    vendredi 9 février 2018, 12:22:23 (UTC+0100)
    lundi 5 février 2018, 12:26:28 (UTC+0100)
    dimanche 4 février 2018, 12:26:28 (UTC+0100)
    samedi 3 février 2018, 12:26:28 (UTC+0100)
    vendredi 2 février 2018, 12:26:28 (UTC+0100)
    jeudi 1 février 2018, 12:26:28 (UTC+0100)
    mercredi 31 janvier 2018, 12:26:28 (UTC+0100)
    mardi 30 janvier 2018, 12:26:28 (UTC+0100)
    Les lignes ajoutées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ fgrep -vf log1.log log2.log                                                                                                                 
    lundi 5 février 2018, 12:26:28 (UTC+0100)
    dimanche 4 février 2018, 12:26:28 (UTC+0100)
    samedi 3 février 2018, 12:26:28 (UTC+0100)
    vendredi 2 février 2018, 12:26:28 (UTC+0100)
    jeudi 1 février 2018, 12:26:28 (UTC+0100)
    mercredi 31 janvier 2018, 12:26:28 (UTC+0100)
    mardi 30 janvier 2018, 12:26:28 (UTC+0100)
    Les lignes suppimées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ fgrep -vf log2.log log1.log                                                                                                                 
    mardi 13 février 2018, 12:22:23 (UTC+0100)
    samedi 10 février 2018, 12:22:23 (UTC+0100)
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. [eCommerce] Quel script pour une boutique en ligne ?
    Par Lareine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 26/06/2009, 16h14
  2. Concaténation de ligne en SQL
    Par GLSpirit dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/10/2007, 11h09
  3. [VBA DAO] Concatèner deux lignes
    Par rayni88 dans le forum VBA Access
    Réponses: 12
    Dernier message: 18/07/2007, 11h18
  4. Réponses: 1
    Dernier message: 09/02/2007, 22h51
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56

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