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

Shell et commandes GNU Discussion :

modifier fichier ascii avec vi


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Par défaut modifier fichier ascii avec vi
    Bonjour a tous,
    je ne suis pas sur d'etre au bon endroit pour ma question, mais bon.


    Je voudrais ajouter du text a un fichier mais a certaines lignes seulement, et je ne sais pas comment faire.
    Voici un fragment du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    000000001 LDR   L ^^^^^nam^^2200145Ia^45e0
    000000001 008   L 090226s9999^^^^xx^^^^^^^^^^^^000^0^und^d
    000000001 260   L $$c2007
    000000001 269   L $$a01/04/2007
    000000001 999	L $$a01/04/2007$$b35978$$cBoletin ICE
    000000001 FMT   L BK
    000000002 LDR   L ^^^^^nam^^2200157Ia^45e0
    000000002 008   L 090226s9999^^^^xx^^^^^^^^^^^^000^0^und^d
    000000002 260   L $$c2007
    000000002 269   L $$a01/04/2007
    000000002 999	L $$a01/04/2007$$b35980$$cBoletin ICE
    000000002 FMT   L BK
    Comme vous pouvez voir, chaque registre demarre a LDR et termine a FMT
    Donc je voudrais ajouter: $$eGEN a la fin de toutes les lignes qui ont le tag 999
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    000000002 999	L $$a01/04/2007$$b35980$$cBoletin ICE
    Et je voudrais que apres traitement ca devienne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    000000002 999	L $$a01/04/2007$$b35980$$cBoletin ICE$$eGEN
    Je crois que c'est possible directement avec VI, qqu'un saurait comment faire?
    Merci de votre aide

  2. #2
    Membre éprouvé Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Par défaut
    Hmm je suis pas sûr si la syntaxe va passer de ton côté mais sous vi tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :%s/^\([0-9][0-9]* 999[[:space:]].*\)$/\1$$eGEN/g
    Après même sans vi il est également possible de faire ça via la commande sed

  3. #3
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    On peut le faire avec awk aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{if ($2 == "999") {$0=$0"\$\$eGEN/g"} print}' file_in > file_out

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    702
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 702
    Par défaut
    Excellent !!! ca marche bien,
    j'ai juste enleve le /g apres le GEN qui appaissait, mais pour le reste genial

    MERCI
    Ciao

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

Discussions similaires

  1. [XL-2010] Modifier fichier .txt avec une macro
    Par QuentinR dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 18/09/2013, 15h52
  2. Relecture d'un fichier ascii avec fscanfMat
    Par DUDE007 dans le forum Scilab
    Réponses: 2
    Dernier message: 06/02/2012, 06h17
  3. Réponses: 3
    Dernier message: 25/06/2008, 10h39
  4. lecture fichiers ASCII avec séparateur
    Par thierry007 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 11/04/2007, 13h25
  5. modifier fichier .txt avec Visual Basic
    Par marco1980 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/09/2006, 20h19

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