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 :

[langage] Remplacer du texte dans un fichier


Sujet :

Langage Perl

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut [langage] Remplacer du texte dans un fichier
    bonjour,
    je suis un newbie complet sur perl
    je voudrais modifier un fichier.
    je l'ouvre par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    system("cd /etc/X11");
    open(FILE_IN,"XF86Config-4") || die("Problème lors de l'ouverture du fichier XF86config-4 en lecture");
    open(FILE_OUT,">XF86Config-4.new") || die("Impossible de créer XF86Config-4.new);
    comment je pourrais faire pour charger le fichier XF86Config-4 en mémoire, modifier une ligne ?
    je ne sais pas comment m'y prendre

    le but de mon programme : modifier une ligne du fichier /etc/X11/XF86Config-4 (cf ce topic )

    à ceux qui prendront la peine de me mettre sur le bon chemin

  2. #2
    FMJ
    FMJ est déconnecté
    Membre averti
    Profil pro
    tutu
    Inscrit en
    Octobre 2003
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : Octobre 2003
    Messages : 416
    Points : 361
    Points
    361
    Par défaut
    Salut

    Tu es newbie en perl mais pas sur le forum.

    Donc c'est un peu surprenant que tu n'ais pas utilisé la recherche avancée ....

    Tu y aurais trouver des infos t'indiquant qu'il n'est pas possible de modifier directement le fichier, mais tu dois passer par un fichier temporaire que tu construit en parsant les lignes de ton fichier original (et en les modifiant comme tu le souhaites). Puis tu détruis le fichier original et tu donnes au fichier temporaire le même nom.

    Mais ce pb n'est pas propre à perl.

    Pour voir comment procéder, consulte le tutorial perl sur ce site, au §. "Accès au contenu des fichiers".

    FMJ

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    j'ai déjà consulté la doc, mais il y a un truc que j'ai pas dû comprendre alors...
    quand on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    open(handler,'fichier');
    while(<handler>)
    {
    }
    ça doit envoyer tout le contenu du fichier dans $_. j'ai essayé de faire un print $_, mais rien ne s'est affiché pourtant mon fichier est bien ouvert parce qu'aucun message d'erreur concernant l'ouverture du fichier

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 809
    Points
    4 809
    Par défaut
    Un petit pointeur puique j'ai été confronté à ce problème y a longtemps : http://www.developpez.net/forums/vie...808&highlight=

    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre actif
    Avatar de Choupi
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 223
    Points : 235
    Points
    235
    Par défaut
    Hum... ecoute ca ca marche tres bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $file = "tonfichier.tonextension";
    open(in,"$file") or die("Probleme lors de l'ouverture du fichier $file"); 
    while (<in>){
    	print $_;
    }
    MacOS 10.5 / Ubuntu / C / Python / R
    Pensez au tag résolu

  6. #6
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    oui en effet, ça fonctionne : je m'y prenais mal
    GLDavid, j'ai vu ton problème et je vais l'étudier plus en détail quand je pourrais

    merci à vous

  7. #7
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 859
    Points : 4 809
    Points
    4 809
    Par défaut
    Basé sur ce que Nyal m'avait envoyé, voici un petit prog de ma conception qui modifiait les commentaires d'une base de données en génomique. J'espère que ça t'aidera :
    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
     
    #!/usr/bin/perl
    use strict;
     
    $| = 1; # Pour vider les buffer
     
    my($f) = "ipi.HUMAN-02-08-2004.v2.34.fasta";
    open FIC, $f or die "$f : $!\n";
    open FILE, '>toto.fasta' or die "toto.fasta : $!\n";
    while (<FIC>) {
       if (/>IPI[:a-zA-Z0-9]*/) {
          s/\|[^\s]*//;
          s/\s[^\s]*//;
          print FILE ;
       }
       else {
          print FILE ;
       }
    }
    close FIC and close FILE;
    unlink $f;
    rename "toto.fasta", $f;
    @ ++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut substituion dans un fichier
    Bonjour je me permet de poser ma question sur ce post, ca evitera les doublons.

    j'ai exploré une bonne partie du forum et passé beaucoup de temps sur les sitesde docs, mais je ne trouve pas de solutions à mon probleme.

    En effet, je souhaite proceder à une substitution d'une chaine de caracteres dans un fichier.
    Pour faire simple je souhaite rechercher une "ancre" (j'appel ca comme ca) que j'ai placée au sein du fichier (unique) et la remplacer par une variable. Ensuite je voudrais la coller à la suite de la chaine de carateres que represente la variable, decallée d'un espace.

    avant:
    "ancre"

    apres:
    $variable "ancre"

    De tel maniere je peux inserer une variable dans mon fichier à la suite de la precedente chaine.

    Mon probleme viens du faite que je ne sais pas comment faire pour ouvrire convenablement mon fichier afin qu'il puisse etre modifier. Au mieux j'ai reussi à l'inserer a la suite du fichier. J'ai testé les codes perl precedent mais il ne fonctionnent pas bien chez moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ouverture du fichier en ajout
    $FILE =~ s/test/aaaaaa "ancre"/;   (sans les "")
    fermeture du fichier
    J'ai essayé de passer le fichier dans un tableau mais rien n'y fait.

    Je vous remercie par avance de votre reponse.

  9. #9
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    refais un autre post it, c'est mieux.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut transfert
    merci c'est bon

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

Discussions similaires

  1. Remplacement de texte dans un fichier RTF
    Par Fearless13 dans le forum Langage
    Réponses: 3
    Dernier message: 17/11/2011, 11h28
  2. Remplacement de texte dans un fichier
    Par horec dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 29/05/2008, 10h25
  3. Programme de remplacement de texte dans des fichiers
    Par Invité4 dans le forum Linux
    Réponses: 13
    Dernier message: 12/11/2006, 16h06
  4. Réponses: 5
    Dernier message: 25/01/2005, 14h26
  5. [langage] Ecrire un bloc de texte dans un fichier
    Par sarahbes dans le forum Langage
    Réponses: 6
    Dernier message: 10/06/2004, 11h40

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