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

Langage Perl Discussion :

expression régulière (Recherche dans fichier)


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut expression régulière (Recherche dans fichier)
    Bonjour je voudrez récupérer dans un fichier password de vpopmail le compte et le mot de passe !

    Voici dans le fichier ce que je retrouve :
    support:$1$V0aFtvE86qsdf456qsfi9SYOTss./:1:0:support:/home/vpopmail/domains/ledomain.net/support:NOQUOTA:HQSKN452S
    Je voudrez pouvoir récupérer le compte support et le passe HQSKN452S !
    Il faut savoir qu'il y a plusieurs compte dans ce fichier !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    open FICHIER,"< /home/vpopmail/domains/$domain/vpasswd" or die "Le fichier n'existe pas !";
        while (my $ligne = <FICHIER>){
     
    	if ($ligne =~ /^(.+?)\s:\sNOQUOTA\s:(.+?)$/) {
     
    	my $nom = $1;
    	my $pass = $2;
     
            main::snotice($nick,"debug : $nom - $pass");
    	 }
        }
        close FICHIER;
    Mon code actuel me retourne rien !
    Merci de votre aide !

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    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
    #!/usr/bin/perl
     
     
    use strict;
    use warnings;
     
     
    open my $fichier ,'<', '/home/vpopmail/domains/$domain/vpasswd' or die "Le fichier n'existe pas !";
     
    while (my $ligne = <$fichier>){
     
    	if ($ligne =~ /^(.+?):NOQUOTA:(.+?)$/) {
     
    		my $nom = $1;
    		my $pass = $2;
    	}
    }
    close $fichier;
    J'ai laissé ton expression mais si tu ne veux pas des 'support :' utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^support:(.+?)support:NOQUOTA:(.+?)$/
    Le problème vient du fait que tu n'as pas d'espace dans ta ligne, il ne faut donc pas de \s (ou alors \s* si des espaces sont parfois possibles).

    Utilise $fichier au lieu de FICHIER, c'est préférable.


    Il faut savoir qu'il y a plusieurs compte dans ce fichier !
    Il faut trouver une expression régulière générale.
    -- Jasmine --

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut erreur
    Le résultat me donne :

    debug : support:$1$V0aFtvE86qsdf456qsfi9SYOTss./:1:0:support:/home/vpopmail/domains/ledomain.net/support: - HQSKN452S
    Au lieu de :

    debug : support - HQSKN452S

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ligne =~ m/^(\w+):.+?\1:\w+:(.+?)$/)
    Voici une EXPREG générale, modifie la si elle doit être plus spécifique.
    -- Jasmine --

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Superbe ca fonctionne merci a toi !

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

Discussions similaires

  1. Expression régulière recherche de fichier
    Par david71 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/09/2008, 12h53
  2. Réponses: 22
    Dernier message: 05/09/2006, 19h32
  3. recherche dans fichier xml
    Par piro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/03/2006, 08h11
  4. Réponses: 4
    Dernier message: 28/10/2005, 09h59
  5. Recherche dans fichiers
    Par Tchinkatchuk dans le forum Linux
    Réponses: 2
    Dernier message: 17/06/2005, 10h32

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