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 :

Filtre sur noms machines


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut Filtre sur noms machines
    Coucou all,

    Je suis actuellement stagiaire dans une grande entreprise et j'ai pour mission de créer un petit script en perl qui a pour but de trouver les numéros serials de certains équipements, ces équipements sont placés par leurs noms dans un fichier texte et c'est ce fichier que le script va avoir en input ;

    Mais je dois faire un filtre sur des noms machines, je ne dois faire ces requètes que sur les fichiers commencant par : (SD|SW|SR|RT|RS) alors que dans le fichier texte il y a d'autres noms,

    Je débute un peu donc merci de ne pas rigoler du code suivant ^^

    J'ai pensé à faire :

    foreach $ARGV !~ m/^(SD|SW|SR|RT|RS);
    Mais je suis vraiment pas convaincu...

    Si quelqu'un pouvait m'aider à faire ce filtrage de noms machines ce serait super !

  2. #2
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    open(my $fichier, "<", $ARGV[0]) or die("Impossible d'ouvrir le fichier: $!");
    while (my $ligne = <$fichier>) {
      if ($ligne =~ /^(SD|SW|SR|RT|RS)/) {
        # Ton traitement
      }
    }
    La première ligne ouvre le fichier fourni en argument au programme en utilisant le file handle $fichier. On lit ensuite le fichier ligne par ligne, et pour chaque ligne qui commence par SD, SW, SR, RT ou RS, on fait un traitement.

    Bonne chance et bon stage!

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut
    J'esperait pas une réponse aussi rapide et précise merci beaucoup pour ton aide !! Si j'ai un autre souci je reviendrais surement, apparament le niveau du forum est plutôt bon ! (meilleur que moi en tout cas lol)

    Merciiii

  4. #4
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    N'oublie pas de cliquer sur le lien 'Résolu' au bas de la page

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut
    C'est fait merci encore

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 7
    Par défaut
    J'en demande surement trop ^^

    Voici mon code, j'ai fait ce que j'ai put, il a surement quelques erreurs et je ne vois pas comment compléter la partie que j'ai intitulé "Filtrage sur les noms machines qui nous intéressent"

    Une 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #!/opt/perl5/bin/perl -w
     
    use strict;
     
     
    #------------  Vérification de l'existence et du type du paramètre passé au script  ------------#
     
    $ARGV=@ARGV;
     
    if ($ARGV == 0) {print("\n\nPas de parametre en entree du script.\n\n",
                           "  Veuillez lancer le script de cette facon:\n",
                           "  sous windows: perl -w script fichier_input\n",
                           "  sous unix:    ./script fichier_input\n\n");
                     exit;}
    if (not -f $ARGV[0]) {print("\n\nLe fichier passe en parametre n'existe pas.\n\n",
                                "Veuillez verifier que le nom du fichier est exact et ",
                                "qu'il se trouve dans le meme repertoire que le script\n\n");
                          exit;}
     
     
    #-----------------------------------  Fin de la Vérification  ----------------------------------#                   
    #                    										#
    #--------------------  Filtrage sur les noms machines qui nous intéressent  --------------------#                      
     
    my @tri;
    open (ARGV,"<",$ARGV[0]) or die("Impossible d'ouvrir le fichier !");
     
    while () {
    	if ($_ =~ m/^(SD|SW|SR|RT|RS|FW) ) {
    	my noms;
    	my series;
    	my $requete=`à faire`;
    		if ( $requete eq "" ) {
    		print "L'equipement est inconnu.\n";
    	...
     
     
     
     
     
    	}
    	else {print("Equipement ne commencant pas par la liste définit dans le script")}
    }
     
     
    #---------------------------------------  Fin du filtrage  -------------------------------------#                   
    #                    										#
    #----------------------------  Définitions des variables utilisées  ----------------------------#
     
     
    my $output_file = "resultat.txt";
    my $res;
     
     
    #------------------------  Fin des Définitions des variables utilisées  ------------------------#
    #												#
    #------------------------  Création du fichier de résultat et affichage  -----------------------#
     
    my @res_tri = sort (@tri);
    open(SERIES,">$output_file") or die "Création du fichier de résultat impossible $!\n";
    print SERIES "-- Voici la liste des équipements classés par noms et leurs numéros de series --";
    foreach (@res_tri) { print SERIES "$_\n"; }
    close(SERIES);
     
     
    #-------------------------  Fin de la création du fichier de résultat  -------------------------#
     
     
     
     
     
     
     
     
     
     
     
     
    #---------------------------------------  Fin du script  ---------------------------------------#

    J'espere que comme hier quelqu'un pourra m'aider, je fais du PERL depuis hier donc j'avance pas très vite pour faire ce script (mais je cherche)

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

Discussions similaires

  1. [DATA] Filtre sur nom des colonnes
    Par thtghgh dans le forum SAS Base
    Réponses: 1
    Dernier message: 03/02/2014, 09h24
  2. Filtre sur nom de fichier
    Par Pgs dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 12/09/2010, 11h27
  3. Réponses: 4
    Dernier message: 22/03/2008, 05h26
  4. Ping sur noms machines dans fichiers txt
    Par elbossoso dans le forum Programmation et administration système
    Réponses: 5
    Dernier message: 02/12/2006, 15h42
  5. Réponses: 8
    Dernier message: 13/07/2004, 09h00

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