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 :

Gérer des csv avec un script awk pour ma CGI


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Futur administrateur systèmes
    Inscrit en
    Décembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Futur administrateur systèmes

    Informations forums :
    Inscription : Décembre 2010
    Messages : 57
    Points : 49
    Points
    49
    Par défaut Gérer des csv avec un script awk pour ma CGI
    Bonjour,

    J'ai déjà posté un message concernant ma CGI en bash/html, je me permets donc de resolliciter votre aide pour un autre problème :

    Pour redétailler la demande, je dois faire une cgi qui :

    - Propose des graphiques avec la consommation de RAM/CPU de clusters. ( Cette étape est validée avec succès en utilisant Gnuplot ).
    - Propose des informations sur des FRAME/LPARS, en ayant la possibilité de choisir de voir ces informations soit par date, soit par nom de FRAME, soit par nom de LPARS.

    Ma CGI ressemble à cela pour le moment :
    Nom : tes.jpg
Affichages : 162
Taille : 21,0 Ko

    J'ai exactement 278 fichier csv contenant des informations sur des FRAMES/LPARS, avec environ 1000 lignes pour chaque fichiers. Les fichiers sont tous configurés de la même manières, avec le même nombre de colonnes, rangées dans le même ordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FRAME_NAME;LPARS_NAME;Running;OS;21;0.3;2;DefaultPool;shared;uncap;128
    Les nom des fichiers sont de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PowerSys-LPARmap-20181114.csv
    J'ai réussi à récupérer la liste de noms des Frames et LPARS afin de les mettre dans un menu déroulant. J'arrive aussi à récupérer le nom sélectionné par l'utilisateur quand il clique sur générer.

    Le but étant que dès qu'un utilisateur clique sur générer, la liste des FRAMES apparaissent, avec la RAM, le CPU et la date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FRAME : XXXX
    DATE : XXXX
    RAM : XXXX
    CPU 1 : XXXX
    CPU 2 : XXXX

    J'y arrive en ajoutant utilisant ce petit script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
     
    awk -F ';|,' '{
                            print "FRAME : " $1
                            print "RAM : " $5
                            print "CPU : " $6
                            print "CPU 2 : " $7
                            print " "
                         } ' PowerSys-LPARmap-20181114.csv

    Voici mon problème : imaginons que j'ai un FRAME1 dans plusieurs csv parmis les 278, sachant que les noms des csv sont composés de leur date de création, comment savoir que dans liste qui va apparaître avec les éléments demandés, tel FRAME1 est de cette date et non d'une autre ? Et évidemment, il n'y a pas de colonne date dans les fichiers csv. ( Je ne sais pas si c'est bien clair... ).

    Du coup l'idée est de rajouter une ligne " DATE " pour qu'on puisse savoir de quand date ces informations. J'ai d'abords pensé à récupérer la date de chaque nom de fichiers csv avec la commande suivante dans le répertoire où sont stockés les csv :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ls*.csv | cut -d'-' -f3 | cut -d'.' -f1
     
    Résultat : 20181114
    L'idée serait de faire quelque chose du style :

    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
     DATE : 20181111
     
    FRAME : FRAME1
    DATE : XXXX
    RAM : XXXX
    CPU 1 : XXXX
    CPU 2 : XXXX
     
     
    DATE : 20181112
     
    FRAME : FRAME1
    DATE : XXXX
    RAM : XXXX
    CPU 1 : XXXX
    CPU 2 : XXXX

    Ce que je n'arrive pas à visualiser, c'est le fait de savoir que tel frame vient de tel fichier et donc, de telle date. La date correspondant à celle se trouvant dans le nom du fichier et en les récupérant avec la commande citée plus haut, il y a peut être une solution, non ?



    Ne sachant pas si mes explications sont bien claires, mais si jamais elles le sont, si vous avez une idée, je suis preneur ! Et si vous ne comprenez pas... Dites le moi, je rexpliquerai !


    Merci d'avance !

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    Tu peux voir directement dans ton awk qui possède une variable se nommant FILENAME qui contient le nom du fichier en entrée en cours.
    Cordialement.

Discussions similaires

  1. Script awk pour la moyenne mobile
    Par aniss1800 dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 26/02/2014, 21h12
  2. Script AWK pour modifier un fichier
    Par leanima dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 13/04/2012, 12h49
  3. passer des parametres à un script awk
    Par rodriguesk dans le forum Administration système
    Réponses: 1
    Dernier message: 14/03/2009, 18h33
  4. script awk pour determiner valmax
    Par maolivar dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 17/07/2008, 16h35
  5. Script AWK pour fichiers xyz
    Par Frankii dans le forum Linux
    Réponses: 4
    Dernier message: 26/07/2007, 21h57

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