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 :

modification de fichiers


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut modification de fichiers
    salut a tous ,
    je veux ecrire un script perl ( sous linux) pour :
    lire le fichier /AA/BB/seg.txt (ligne par ligne )
    prendre de chaque ligne les caractéres(phrases) entre () ,et les écrire (ces phrases) dans un autre fichier a créer dans /AA/BB/ ,toujours ligne par ligne .

    c'est vraiment urgent
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Le but de ce forum n'est pas de fournir des réponses toutes faites. Essaie d'abord par toi-même, puis si tu n'y arrives pas, dis nous ce que tu as essayé, montre nous ton code, et nous t'aiderons (nous ne te demandons pas non plus des jours de recherche, juste un petit effort personnel).
    (par ailleurs écrire "C'est vraiment urgent" dans ton message est l'une des meilleures façon de ne pas avoir de réponse, ça irrite les utilisateurs du forum : ils répondent s'ils savent comment faire et au moment où ils lisent ton message pour la première fois, leur dire que c'est urgent dans le message ne changera en rien le moment où il le liront pour la première fois, donc ne peut pas accélérer le processus de réponse).

    Bon courage.

    --
    Jedaï

  3. #3
    Invité
    Invité(e)
    Par défaut
    Et la FAQ est là pour subvenir aux besoins le plus basiques.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    désolé pour le mot urgent !!
    j'éssayé d'écrire un script mais ça ne marche pas
    mon script est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    open(LISTE,"</AA/BB/sex.txt") or die"open: $!";
    my $seg ;
    my $resultat ;
    while ( defined ($seg=<LISTE>) )
    {
    my ($resultat,$s2) = split /start/,$seg;
    printf   $resultat   ; 
    }
    close(LISTE);
    je n'arrive pas a ecrire les lignes résultantes dans un fichier dans /AA/BB/ en plus je n'arrive non plus à choisir les caractéres entre ().mon script ne prend que les caractéres qui précedent le caractére "start"
    merci

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Suis bien les conseils donnés par jedai, sous peine de ne pas avoir de réponse à tes threads. Bon, voilà un truc que je te fais vite fait, j'ai pas eu le temp de vérifier. Il lit ton fichier, recupere ce qu'il y a entre parenthese et réécrit dans un autre fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    open(LISTE,"</AA/BB/sex.txt") or die"open: $!";
    open(RES,">/AA/BB/resultat_toto.txt") or die"open: $!";
    my $seg ;
    my @resultat;
    while ($seg=<LISTE>) {
    chmop ($seg);
    @resultat = $seg =~ /(.+?)/g;
    print RES " @resultat\n" if ( @resultat); 
    @resultat=();
    }
    close(LISTE);
    close(RES);

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Par défaut
    Salut,
    Citation Envoyé par djibril
    Bon, voilà un truc que je te fais vite fait, j'ai pas eu le temp de vérifier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    open(LISTE,"</AA/BB/sex.txt") or die"open: $!";
    open(RES,">/AA/BB/resultat_toto.txt") or die"open: $!";
    my $seg ;
    my @resultat;
    while ($seg=<LISTE>) {
    chmop ($seg);
    @resultat =~ /(.+?)/g;
    print RES " @resultat\n" if ( @resultat); 
    @resultat=();
    }
    close(LISTE);
    close(RES);
    Au lieu de ce n'est pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @resultat = $seg =~ /(.+?)/g;
    lami20j

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par lami20j
    Salut,Au lieu de ce n'est pas plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @resultat = $seg =~ /(.+?)/g;
    lami20j
    oui t'as raison, sorry

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    merci pour ta réponse , en exuctant le script :
    j'obtient le message d'erreur :

    Applying pattern match (m//) to @array will act on scalar(@array) at test.pl line 10.
    Undefined subroutine &main::chmop called at test.pl line 9, <LISTE> line 1.

    je suis cloué devant ce message

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 32
    Par défaut
    je retire ce jé dit
    mé en changeant cette ligne j'obtient une autre erreur
    Undefined subroutine &main::chmop called at test.pl line 9, <LISTE> line 1.




    jé changé la ligne comme tu ma dis
    @resultat = $seg =~ /(.+?)/g;

  10. #10
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Y a une ou deux erreur de frappe dans le script de Djibril, je te donne une version corrigée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #! /usr/bin/perl
    use strict; use warnings;
     
    open(INPUT, '<', '/AA/BB/sex.txt') or die "open : $!";
    open(OUTPUT, '>', '/AA/BB/resultat_toto.txt') or die "open : $!";
     
    while ( my $line = <INPUT> ) {
      chomp ($line);
      print OUTPUT ( $line  =~ m/\(([^\)]*)\)/g ), "\n";
    }
    close(INPUT);
    close(OUTPUT);
    Toutefois, ce script ne réagira pas bien à plusieurs niveaux de parenthèses, est-ce ton cas ?

    --
    Jedaï

  11. #11
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Merci jedai pour ta correction.
    On sent que le week end s'approche

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Par défaut
    Citation Envoyé par Jedai
    Toutefois, ce script ne réagira pas bien à plusieurs niveaux de parenthèses
    donmamio voilà une approche pour plusieurs niveaux de paranthèses.
    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
    #! /usr/bin/perl
    use strict; use warnings;
    #
    open(INPUT, '<', './AA/BB/sex.txt') or die "open : $!";
    open(OUTPUT, '>', './AA/BB/resultat_toto.txt') or die "open : $!";
     
    while ( <INPUT> ) {
       while ( /\(/g ) {
          if ( /\G([^()]+)/ ) {
             print OUTPUT "$1 ";
          }
       }
       print OUTPUT "\n";
    }
    close(INPUT);
    close(OUTPUT);
    Le résultat
    lami20j@debian:~/trash$ cat AA/BB/sex.txt
    ((J'ai pris le script de djibril et la version corigée de Jedai))
    line1 : aaaa(AAA) bbb(BBB) ccc
    line2 : (XXX)xxx sdfkj (HHH)
    (AAA) (BBB)
    ((CCC)) (((DDDD)))
    (YYY))) ttt ((=OOO=)))
    lami20j@debian:~/trash$ perl dvz_djibril_jedai_parantheses.pl
    lami20j@debian:~/trash$ cat AA/BB/resultat_toto.txt
    J'ai pris le script de djibril et la version corigée de Jedai
    AAA BBB
    XXX HHH
    AAA BBB
    CCC DDDD
    YYY =OOO=
    lami20j@debian:~/trash$
    lami20j

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

Discussions similaires

  1. Modification de fichier XML avec XSLT
    Par osmoz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/07/2005, 11h04
  2. [JAR]Modification de fichier dans un jar
    Par vberetti dans le forum Général Java
    Réponses: 14
    Dernier message: 13/06/2005, 17h56
  3. [langage] [Fichier]problème modification de fichier
    Par Melchisedec dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 23h01
  4. [ICS FtpClient] Date modif de fichier et listage de dossier
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 13/06/2004, 19h54
  5. modification de fichier EOF
    Par scorbo dans le forum C
    Réponses: 9
    Dernier message: 28/11/2003, 11h35

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