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 :

rechercher chaine de caractaire dans un fichier


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 63
    Points
    63
    Par défaut rechercher chaine de caractaire dans un fichier
    bonjour

    j'ai un fichier qui contient

    29 00 4b 46 ff ff 08 10 eb : crc=eb YES
    29 00 4b 46 ff ff 08 10 eb t=20250

    je souhaite recuperer la valeur qui est apres le t=
    donc la valeur 20250


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    open(FICHIER,"</sys/devices/w1_bus_master1/$tbl_id_sonde[0]/w1_slave") || die ("Le fichier n'existe pas\n");
     
    while ($ligne = <FICHIER>){
     
    chomp($ligne) ;
    print "$ligne \n";
     
     
    }
    close(FICHIER);

    Merci de votre aide

    Cordialement

  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
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Tu peux essayer quelque chose comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($ligne = <FICHIER>){
         chomp($ligne) ;
         my $t_valeur = $1 if $ligne =~ /t=(\d+)$/;
         print "$t_valeur \n" if defined $t_valeur;
    }
    ou plus simplement, selon ce que tu cherches faire exactement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($ligne = <FICHIER>){
         print $1 if $ligne =~ /t=(\d+)$/;
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 63
    Points
    63
    Par défaut
    merci de votre aide

    j'ai fait donc cette solution

    mais se que je ne comprend pas c'est le $1

    si je le remplace par une autre variable par excemple $test ca ne fonctionne pas

    pouvez-vous m'eclairer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while ($ligne = <FICHIER>){
        if ($ligne =~ /t=(\d+)$/){
        print "$1";
    }
     
    }  
     
     
    close(FICHIER);

    Merci

    Cordialement

  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
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Dans une expression régulière comme /t=(\d+)$/, on décrit la chaîne de caractères que l'on veut reconnaître. Ici, je veux reconnaître "t=", suivi d'un ou plusieurs chiffres \d+, suivi de la fin de la ligne $. Les parenthèses autour de (\d+) servent à capturer ces chiffres pour pouvoir les utiliser. Cette capture se fait dans des variables spéciales, $1, $2, $3 etc., selon le nombre de groupes de parenthèses dans l'expression régulière. Ici, il n'y a qu'un seul groupe de parenthèses, le nombre capturé entre les parenthèses se retrouve donc dans $1.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Points : 63
    Points
    63
    Par défaut
    Merci pour votre explication

    je comprend un peut mieux

    Merci beaucoup de votre aide

    Cordialement

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/06/2014, 12h04
  2. Recherche chaine de caractère dans un fichier txt
    Par 4rocky4 dans le forum Débuter
    Réponses: 11
    Dernier message: 31/12/2010, 17h29
  3. Recherche chaine de caractère dans un fichier
    Par izghad_06 dans le forum Shell et commandes POSIX
    Réponses: 7
    Dernier message: 17/12/2010, 12h44
  4. [VBS] Recherche chaine de caractères dans un fichier
    Par parker13 dans le forum VBScript
    Réponses: 1
    Dernier message: 08/07/2006, 00h22
  5. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10

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