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 :

Script récupérant une intervalle de ligne ou un paragraphe


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    ingénieur
    Inscrit en
    Septembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 54
    Par défaut Script récupérant une intervalle de ligne ou un paragraphe
    Bonjour,

    j'essaye d'écrire un script qui demande une date et récupère dans une log la paragraphe qui y fait référence. Voici l'allure de la log (les pointillets font parti de la log)

    -----------------------------------------------------------------------------------------
    Date : 21 / 8 / 2006

    Liste des bandes sorties :
    LP0488L3
    LP0407L3
    LP0406L3
    LP0402L3


    la bande LP0402L3 a ete localise dans 26408
    la bande LP0406L3 a ete localise dans 26408
    la bande LP0407L3 a ete localise dans 26408
    la bande LP0488L3 a ete localise dans 26408
    Liste des bandes sorties :
    000249L3
    000222L3
    000214L3
    000166L3
    000156L3

    la bande 000055L3 a ete localise dans MEMO26408
    la bande 000059L3 a ete localise dans MEMO26408
    la bande 000072L3 a ete localise dans MEMO26408
    la bande 000088L3 a ete localise dans MEMO26408

    ----------------------------------------------------------------------------------------
    comment peut-on procéder ? j'ai essayer de définir avec awk des intervalles du style awk '/patern1/ , /pattern2/' mais ça donne pas trop ce que je veux.

    De plus le format de la date contient des espaces ce qui facilitent pas les choses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    le nombre de lignes entre les deux séries de pointillés est-il toujours le même ou est-ce que ça varie ?

    Pour ta date avec les espaces, tu peux appeler ça déjà : taDateAvecEspaces=`echo $taDateSansEspace | awk -F/ '{print $1" / "$2" / "$3}'`

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Sinon un idée :
    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
    16
    17
    18
    19
    20
    21
    22
    ligneDate=`cat -n fichier.log | grep "$maDateAvecEspaces" | awk '{print $1}'`
    limitesParagraphes=`cat -n fichier.log | grep -e ------------- | awk '{print $1}'`
    paragrapheTrouve="false"
    debut=0
    fin=0
    for ligne in $limitesParagraphes
    do
        if test $paragrapheTrouve = "false"
        then
            if test $ligne -lt $ligneDate
            then
                debut=$ligne
            else
                fin=$ligne
                paragrapheTrouve="true"
            fi
        fi
    done
     
    debut=`expr $debut + 1`
    nbLignes=`expr $fin - $debut`
    paragraphe=`tail --lines=+$debut fichier.log | head -$nbLignes`
    Attention :ce n'est pas du tout optimal, car on parse 3 fois le fichier; ce script implique en plus que la date ne doit apparaitre qu'une seule fois dans le fichier et que le paragraphe soit entouré de ces lignes "-------" (donc peut-être que le premier et dernier paragraphe du fichier ne seront pas pris en compte.

Discussions similaires

  1. [Script] Ignorer une ligne spécifique
    Par malik0 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 27/02/2012, 10h36
  2. Script tracer une ligne
    Par tof225391 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/05/2011, 10h53
  3. [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
  4. [GD] Erreur 500 avec script d'une ligne
    Par keul dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/09/2007, 10h50
  5. Scripts : Extraire une ligne
    Par nemohck dans le forum Linux
    Réponses: 7
    Dernier message: 03/11/2003, 20h40

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