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 :

modifier un fichier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut modifier un fichier
    slt
    je ve changer la phrase d'une ligne d'un fichier texte avec une autre phrase avec perl. comment je pe faire stp?
    notez que je connais le numero de la ligne.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    probleme classique mais pas si trivial que ca
    tu ne peu pas modifier comme ca un fichier en son milieu (à moins que ce que tu ajoute et ce que tu enleve soit exactement de la meme taille).
    La solution consiste toujours à copier un bout du fichier. La solution minimum est d'ouvire le fichier en lecture/ecriture, scanner jusqu'à la ligne concernée, lire le reste du fichier dans un buffer (ou un autre fichier si trop gros), faire un truncate, puis ajouter la nouvelle ligne et le buffer...
    Si le fichier est pas tres gros le mieux est surement de le slurper entierement en memoire, faire la modif avec une regexp, puis le réécrire.

    Enfin bon le plus simple, le plus optimisé, et le plus clair à ecrire et a maintenir est encore sans doute d'utiliser le module Tie::File :
    http://search.cpan.org/~mjd/Tie-File-0.96/

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 16
    Par défaut
    bonjour
    j'ai jamais programmer avec perl,
    la derniere fois j'ai remplace une phrase d'un fichier texte par une autre phrase avec l'instruction:
    perl -i -p -e 's/database dm/interface manu/g' fichier.txt
    mais maintenant je ve ecraser une ligne que je connais son numero et la remplacer par une autre phrase.
    merci

  4. #4
    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
    Si tu veux faire ça avec un one-liner, fais ça avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl -i -p -e '$_ = "le remplacement de ma ligne\n" if $. == 23' fichier.txt
    (Remplacement de la 23ème ligne par "le remplacement de ma ligne")

    --
    Jedaï

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    ouai mais ca a pas de style!
    bon ok =>

  6. #6
    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
    Citation Envoyé par pospos
    ouai mais ca a pas de style!
    bon ok =>
    Ben c'est sûr que niveau robustesse et extensibilité.... Mais bon, je n'ai pas l'impression que le posteur veuille vraiment apprendre Perl. Autant lui donner un petit one-liner (effort minimal de notre part) qui fasse ce qu'il veut. Et en espérant que ça lui donne envie d'en savoir plus !
    (Sinon je suis d'accord que la meilleure solution est sans doute Tie::File)

    --
    Jedaï

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  2. [JexcelAPI]Modifier un fichier excel
    Par sissi_l dans le forum Documents
    Réponses: 3
    Dernier message: 01/06/2007, 01h36
  3. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13
  4. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  5. [LG]modifier un fichier
    Par fofovi72 dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2004, 21h30

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