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 :

Additionner le résultat de 2 variables


Sujet :

Linux

  1. #1
    Futur Membre du Club Avatar de PsyKoptiK
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Additionner le résultat de 2 variables
    Bonjour à tous,

    Je suis en train de parser des logs et je rencontre un petit problème pour additionner des variables dans une boucle.
    Chaque fichier que je parse me renvoie un certain nombre de pattern que j'aimerais stocker dans une variable et l'incrémenter avec la valeur de celle suivante.

    En gros dans ce fichier :

    L'idée serait, à travers une boucle, de stocker la valeur de la première occurrence et de l'additionner à la suivante, sauriez-vous comment faire sans utiliser un fichier d'échange temporaire ? Merci d'avance !

    PsyKoptiK

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    awk se prête très bien à l'exercice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # cat <<EOF > fichier.log
    > 123
    > 456
    > 789
    > EOF
    # awk '{somme += $1} END {print somme}' fichier.log
    1368

  3. #3
    Futur Membre du Club Avatar de PsyKoptiK
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse BufferBob mais j'utilise déjà cette séquence.

    L'idée c'est de ne pas passer par un fichier temporaire et qu'à chaque retour (dans la boucle for) je puisse additionner la somme de la valeur précédente (issue donc de la même boucle for).

    Peut-être as-tu d'autres idées qui m'éclaireraient ?

    A plus.

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par PsyKoptiK Voir le message
    L'idée c'est de ne pas passer par un fichier temporaire (...)
    où tu vois un fichier temporaire ? (accessoirement y'a pas non plus de boucle for)

    en fait même en relisant plusieurs fois je trouve que la description de ce que tu veux faire n'est pas claire, tu peux montrer un exemple plus précis/concret stp ?

  5. #5
    Futur Membre du Club Avatar de PsyKoptiK
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    où tu vois un fichier temporaire ? (accessoirement y'a pas non plus de boucle for)

    en fait même en relisant plusieurs fois je trouve que la description de ce que tu veux faire n'est pas claire, tu peux montrer un exemple plus précis/concret stp ?
    Désolé BufferBob si je n'ai pas été clair, je vais essayer de reformuler correctement.

    L'idée d'origine est de compter le nombre d’occurrence (ici "pattern_a_rechercher") que je parse dans des fichiers de logs et d'additionner ces valeurs.
    Le hic, c'est que je n'ai pas le droit d'écriture sur le serveur pour utiliser un fichier temporaire (d'où ma précision qui ne semblait pas cohérent et réaliste dans mon exemple précédent).

    Voici l'idée simplifiée de ce que j'aimerais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i in $(ls -1 /var/logs/*.txt);
        do
        COUNT=$(cat $i | grep "pattern_a_rechercher" | wc -l)
        (( COUNT++ ))
        done
    A partir de cela donc, je souhaite que la variable COUNT s’additionne à chaque ligne. Le problème c'est que dans cet exemple, COUNT se fait écraser par la nouvelle valeur récupérée dans la boucle (et s'incrémente de 1) ; je ne sais pas comment juste additionner chaque ligne parsée.

    J'espère avoir été un poil plus clair !

    Merci encore à toi !

  6. #6
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par PsyKoptiK Voir le message
    J'espère avoir été un poil plus clair !
    c'est pas l'pérou mais je crois que j'ai à peu près compris l'idée

    disons que ton script je te le remplace par COUNT=$(grep -o "pattern" /var/logs/*.txt | wc -l) tu en penses quoi ?
    (note qu'on a toujours pas besoin de boucle explicite ni de fichier temporaire)

Discussions similaires

  1. Additionner un nombre de données variables
    Par svedberg dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2007, 22h09
  2. [Système] Affichage résultat d'une variable
    Par herveD dans le forum Langage
    Réponses: 7
    Dernier message: 06/07/2007, 16h05
  3. stocker résultat requète dans variable string
    Par Brice_68 dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/06/2007, 15h06
  4. [DAO]Affecté résultat requête à une variable
    Par Lex O'Mil dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/03/2007, 15h56
  5. Réponses: 5
    Dernier message: 05/04/2005, 11h53

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