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

Programmation et administration système Perl Discussion :

[QUESTION] L'utilisation de Perl pour mon "projet"


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 203
    Par défaut [QUESTION] L'utilisation de Perl pour mon "projet"
    Bonjour à tous,

    J'espère ne pas m'être trompé de sous-forum pour ce message, mais je n'ai pas trouvé de "Général".

    Alors voilà, je viens vers vous car j'aimerai savoir si Perl pemettrai de réaliser ce que j'aimerai faire.
    Me dites-vous, pourquoi vous demander ceci si je sais le faire avec un autre langage type Powershell ou autre ? Car un ancien collègue à réaliser quasi tout nos scripts, etc. en Perl, et que je ne maîtrise pas Perl. Je me dis, si Perl permet de faire ce que je recherche, autant l'apprendre en même temps.

    Donc voilà, sur un système de stockage, je reçois un output qui ressemble à ceci (voir attachement).

    Mon but est le suivant :

    Regrouper les "header" et les données ensemble (comme par exemple un genre de Text To Columns d'Excel).
    Et ensuite effectuer des opérations comme ceci (à titre d'exemple) :

    Name Capacity
    SQL01 1.00GB
    ORA01 2.00GB
    SQL02 3.00GB
    Test01 10.00GB

    etc

    Et ensuite avoir un output du genre comme résultat final :

    SQL : 4.00GB
    ORACLE : 2.00GB
    Other : 10.00GB

    Pensez-vous que Perl peut faire ceci ? Sans obtenir un script extrêmement compliqué ?

    Merci d'avance !

    Bien à vous,
    Original
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne vois pas de pièce jointe et ne peux donc voir les données en entrée.

    Mais le type de manipulation de données que tu décris est très simple à faire en Perl, et je dirais même que c'est l'un des points forts de Perl et que Perl est sans conteste possible l'un des meilleurs langages pour cela.

    Donc oui, possible, sans doute en quelques lignes de code seulement.

    Mais présente un échantillon de tes données en entrée. Impossible de t'aider sans voir ces données.

  3. #3
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 203
    Par défaut
    Bonjour Lolo,

    Merci pour ta réponse.
    Zut j'étais persuadé de l'avoir upload ... J'ai du bug quelque part.

    Voilà, tu le trouveras ci-joint maintenant
    C'est un vrai échantillon de ce que je reçois, dans le fichier, par exemple, je dois ignorer les 11 premières lignes, et commencer à traiter à partir de la 12. Mais je suppose que Perl permet de commencer uniquement à partir d'une certaine ligne ou en passer un certains nombre ...

    J'espère que c'est clair pour toi dérsomais.

    A bientôt,
    Original
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je ne vois pas du tout comment exploiter les données de ton fichier pour ce que tu dis vouloir faire (dans ta première étape). Je ne trouve même pas des chaînes de caractères comme SQL ou ORA. Je crains que je n'ai besoin d'informations plus précises sur ce que tu récupères dans ton fichier en entrée.

  5. #5
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mars 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : Mars 2013
    Messages : 203
    Par défaut
    Bonjour,

    Comme tu peux le voir c'est des données avec comme delimiter le double point (

    Dans le fichier, je n'ai besoin que de traiter les "colonnes" "Name" et "Capacity".

    Pour te donner un exemple :

    A l'ID 2 par exemple, le "Name"=V_SVCC_NBB2_VMWare_Prd_0525_04A1_MA
    A l'ID 2 par exemple, la "Capacity"=1.22TB

    Mon but est le suivant :
    Quand le programme voit que dans le "Name" on retrouve "VMWare" il récupère Capacity est l'aditionne à un total qui affichera par exemple :

    VMWare = 1.22TB

    Si le programme retrouve un autre VMWare, il l'aditionne au 1.22TB déjà présent.

    C'est plus clair pour toi ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    voici un exemple de code

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    use strict;
    use warnings;
     
    my $total_cap = 0;
    <DATA> for 1..11;
    while (my $line = <DATA>) {
    	my ($name, $capacity) =  (split /:/, $line)[1, 7];
    	if ($name =~ /VMWare/) {
    		$capacity = $1 if $capacity =~ /^([\d.]+)/;
    		$total_cap += $capacity;
    	}
    }
    print "Total Capacity = ", $tot_cap, "\n";
     
    __DATA__
    Command to execute : svcinfo lsmdiskgrp -delim : :
    --------------------------------------------------
    id:name:status:mdisk_count:vdisk_count:capacity:extent_size:free_capacity:virtual_capacity:used_capacity:real_capacity:overallocation:warning:easy_tier:easy_tier_status:compression_active:compression_virtual_capacity:compression_compressed_capacity:compression_uncompressed_capacity:parent_mdisk_grp_id:parent_mdisk_grp_name:child_mdisk_grp_count:child_mdisk_grp_capacity:type:encrypt:owner_type:site_id:site_name
    0:NBB2_CORP_DS8K8:online:38:297:124.98TB:1024:7.54TB:117.44TB:117.43TB:117.43TB:93:90:on:active:yes:5.00GB:3.28MB:0.00MB:0:NBB2_CORP_DS8K8:0:0.00MB:parent:no:none::
    1:MigrationPool_8192:online:0:0:0:1024:0:0.00MB:0.00MB:0.00MB:0:80:auto:balanced:no:0.00MB:0.00MB:0.00MB:1:MigrationPool_8192:0:0.00MB:parent::none::
     
     
    RC = 0
     
    Command to execute : svcinfo lsvdisk -delim : :
    -----------------------------------------------
    id:name:IO_group_id:IO_group_name:status:mdisk_grp_id:mdisk_grp_name:capacity:type:FC_id:FC_name:RC_id:RC_name:vdisk_UID:fc_map_count:copy_count:fast_write_state:se_copy_count:RC_change:compressed_copy_count:parent_mdisk_grp_id:parent_mdisk_grp_name:formatting:encrypt:volume_id:volume_name:function
    0:V_SVCC_NBB2_SCNAMM21_22_PROA1M_OR01_0398_NM:1:IO_GRP1:online:0:NBB2_CORP_DS8K8:75.00GB:striped:::::600507680181865A7800000000000398:0:1:not_empty:0:no:0:0:NBB2_CORP_DS8K8:no:no:0:V_SVCC_NBB2_SCNAMM21_22_PROA1M_OR01_0398_NM:
    1:V_SVCC_NBB2_SWPNCNDATP01_G_0001_AU:1:IO_GRP1:online:4:NBB2_CORP_NRLSAS_STW22:2.00TB:striped:::1:rcrel0:600507680181865A7800000000000399:0:1:empty:0:no:0:4:NBB2_CORP_NRLSAS_STW22:no:no:1:V_SVCC_NBB2_SWPNCNDATP01_G_0001_AU:aux
    2:V_SVCC_NBB2_VMWare_Prd_0525_04A1_MA:0:IO_GRP0:online:2:NBB2_CORP_STW22:1.22TB:striped:::2:rcrel5:600507680181865A7800000000000525:0:1:not_empty:0:no:0:2:NBB2_CORP_STW22:no:no:2:V_SVCC_NBB2_VMWare_Prd_0525_04A1_MA:master
    3:V_SVCC_NBB2_SCNDEV31_32_DEVNFS_039C_NM:1:IO_GRP1:online:2:NBB2_CORP_STW22:5.00GB:striped:::::600507680181865A780000000000039C:0:1:not_empty:0:no:0:2:NBB2_CORP_STW22:no:no:3:V_SVCC_NBB2_SCNDEV31_32_DEVNFS_039C_NM:
    Ici, j'ai mis les données à la fin du programme pour faciliter le test. Dans le cas réel, il faudrait ouvrir le fichier et lire le fichier, au lieu de lire la section DATA.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle est l'utilité de Perl pour mon projet ?
    Par cj_prog dans le forum Langage
    Réponses: 1
    Dernier message: 04/05/2011, 14h41
  2. Erreur à l'utilisation de PERL pour Solaris (perl: warning: Setting locale failed.)
    Par arnaudperfect dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 13/10/2010, 17h08
  3. Réponses: 6
    Dernier message: 26/01/2008, 10h37

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