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

Linux Discussion :

Remplacer plusieurs variables dans un fichiers


Sujet :

Linux

  1. #1
    Membre averti
    Homme Profil pro
    SQLI
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : SQLI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut Remplacer plusieurs variables dans un fichiers
    Bonjour,

    Dans mon exemple j'ai un model de fichier à partir duquel je dois générer un autre fichier avec les bonnes valeurs:
    En gros: J'ai par exemple en entrée de script un fichier du model qui contient PARAM1, PARAM2,... et je dois les remplacer dans le fichier en sortie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    cat $fic | awk '{ sub(/'PARAM1'/,'$lPARM1'); print}' > $rep/tmp1.txt
    		cat $rep/tmp1.txt | awk '{ sub(/'PARAM2'/,'$lPARM2'); print}' > $rep/tmp2.txt
    		cat $rep/tmp2.txt | awk '{ sub(/'RAPPORT'/,'$lPARM3'); print}' > $rep/new_model_DIV.txt
     
    		rm $rep/tmp1.txt
    		rm $rep/tmp2.txt
    J'ai trouvé cette solution en créant des fichiers temporaires et les supprimer par la suite, mais le problème c'est qu'il faut créer autant de fichiers que de variables donc c'est pas beau! y'a t'il une solution qui remplace tout d'un coup (exemple: paramètres) ou une solution plus optimale ?

    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    sed me paraît plus adapté pour ça :

    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
    $ cat plop 
    blablabla bla PARAM1 blablabla
    blabla
    blabla PARAM2 bla bla
    bla
    blabla bla RAPPORT blabla
    bla blabla
     
    $ lPARAM1=TOTO;lPARAM2=TATA;lPARAM3=TITI
     
    $ sed "s/PARAM1/${lPARAM1}/g;s/PARAM2/${lPARAM2}/g;s/RAPPORT/${lPARAM3}/g" plop > brol
     
    $ cat brol
    blablabla bla TOTO blablabla
    blabla
    blabla TATA bla bla
    bla
    blabla bla TITI blabla
    bla blabla
     
    $

  3. #3
    Membre averti
    Homme Profil pro
    SQLI
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : SQLI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut
    Merci énormément

Discussions similaires

  1. Réponses: 16
    Dernier message: 27/03/2014, 11h20
  2. Remplacer plusieurs chaines dans plusieurs fichiers
    Par freestyler dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/04/2008, 19h16
  3. 1 SOLUTION : plusieurs anim dans un fichier x
    Par heidi79 dans le forum DirectX
    Réponses: 1
    Dernier message: 28/08/2003, 09h19
  4. Plusieurs animations dans un fichier .X
    Par heidi79 dans le forum DirectX
    Réponses: 6
    Dernier message: 25/08/2003, 02h26
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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