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 :

perl ajouter des lignes d'�criture dans un fichier


Sujet :

Langage Perl

  1. #1
    Membre confirm�
    Femme Profil pro
    Ing�nieur d'�tude et de d�veloppement en bioinformatique en recherche d'emploi
    Inscrit en
    Mars 2012
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tude et de d�veloppement en bioinformatique en recherche d'emploi
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par d�faut perl ajouter des lignes d'�criture dans un fichier
    Bonjour,
    Je vous savoir si il �tait possible d'ajouter des lignes d'�criture en t�te d'un fichier sans effacer son contenu.
    Merci

  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
    Billets dans le blog
    1
    Par d�faut
    En principe, ce n'est pas possible. Il faut �crire ton en-t�te dans un nouveau fichier, puis recopier le contenu de ton fichier en entr�e, puis renommer les fichiers.

    Ou �ventuellement faire un script uniligne du genre:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $perl -ni.bak -e 'print "Ceci est une entete\n" if $. == 1; print;' nom_fichier.txt
    Sous Windows, remplacer les apostrophe par des guillemets et r�ciproquement.

    A tester d'abord sur une copie du fichier.

  3. #3
    Membre confirm�
    Femme Profil pro
    Ing�nieur d'�tude et de d�veloppement en bioinformatique en recherche d'emploi
    Inscrit en
    Mars 2012
    Messages
    69
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tude et de d�veloppement en bioinformatique en recherche d'emploi
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 69
    Par d�faut re
    J'ai fait la 1ere solution.
    Merci

  4. #4
    Expert confirm�

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par d�faut
    Citation Envoy� par Lolo78 Voir le message
    Ou �ventuellement faire un script uniligne du genre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $perl -ni.bak -e 'print "Ceci est une entete\n" if $. == 1; print;' nom_fichier.txt
    Ou �ventuellement comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $perl -pi.bak -e 'BEGIN { print "Ceci est une entete\n" }' nom_fichier.txt

  5. #5
    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
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par Philou67430 Voir le message
    Ou �ventuellement comme �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $perl -pi.bak -e 'BEGIN { print "Ceci est une entete\n" }' nom_fichier.txt
    Ben non, c'est ce que j'allais d'abord proposer, mais je me suis rendu compte en testant que �a ne marchait pas : le print du bloc BEGIN{} se fait � l'�cran, pas dans le fichier.

  6. #6
    Expert confirm�

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par d�faut
    Ooops... Etrange... et un print STDOUT marche-t-il ?

  7. #7
    Membre chevronn� Avatar de cmcmc
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    316
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 316
    Par d�faut
    Citation Envoy� par Philou67430 Voir le message
    Ooops... Etrange... et un print STDOUT marche-t-il ?
    Ce serait plut�t ARGVOUT mais �a ne marche pas non plus, peut-�tre pour de bonnes raisons (quel devrait �tre le comportement si on passe plusieurs fichiers en param�tre ?)

    Ceci fonctionne avec plusieurs fichiers :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -ne 'if ($lastARGV ne $ARGV) { print "ceci est un entête\n"; $lastARGV = $ARGV} print' test1.dat test2.dat ...
    ceci aussi (-p au lieu de -n) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -pe 'if ($lastARGV ne $ARGV) { print "ceci est un entête\n"; $lastARGV = $ARGV}' test1.dat test2.dat...

  8. #8
    Membre chevronn� Avatar de cmcmc
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    316
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 316
    Par d�faut
    Citation Envoy� par cmcmc Voir le message
    Ceci fonctionne avec plusieurs fichiers :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -ne 'if ($lastARGV ne $ARGV) { print "ceci est un entête\n"; $lastARGV = $ARGV} print' test1.dat test2.dat ...
    ceci aussi (-p au lieu de -n) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -pe 'if ($lastARGV ne $ARGV) { print "ceci est un entête\n"; $lastARGV = $ARGV}' test1.dat test2.dat...
    par contre si on veut ajouter quelque chose en fin de fichier, ceci fonctionne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -ne 'print; print "ceci est un pied\n" if eof' test1.dat test2.dat ...
    mais je ne crois pas qu'il existe une solution avec -p ... On peut �videmment combiner les deux :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    perl -i.bak -ne 'if ($lastARGV ne $ARGV) { print "ceci est un entête\n"; $lastARGV = $ARGV} print; print "ceci est un pied\n" if eof' test1.dat test2.dat ...

  9. #9
    Expert confirm�

    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par d�faut
    Citation Envoy� par cmcmc Voir le message
    Ce serait plut�t ARGVOUT mais �a ne marche pas non plus, peut-�tre pour de bonnes raisons (quel devrait �tre le comportement si on passe plusieurs fichiers en param�tre ?)
    Mmm... exact... (pour STDOUT/ARGVOUT, et pour le traitement de multiples fichiers).

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ajout des lignes de calcul dans mon rapport
    Par safine dans le forum Jasper
    R�ponses: 5
    Dernier message: 11/07/2013, 15h36
  2. ajouter des lignes de code dans un fichier texte
    Par oodbae_adriano dans le forum MATLAB
    R�ponses: 4
    Dernier message: 06/12/2010, 10h39
  3. ajouter des lignes et colonnes dans un tableau
    Par sky88 dans le forum D�buter
    R�ponses: 1
    Dernier message: 03/12/2008, 18h04
  4. R�ponses: 2
    Dernier message: 07/08/2006, 16h43
  5. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entr�e/Sortie
    R�ponses: 9
    Dernier message: 29/04/2004, 22h41

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