Bonjour à tous.
J'ai un problème plus que tordu...
Voilà, j'ai un fichier fichier1 dont le contenu peut ressembler à ca :
Code:
1
2
3
4 truc __var__ chose machin __var2__ bidule
J'ai une variable var qui vaut "valeur1" et une variable var2 qui vaut "valeur2"
Code:
1
2 var1=valeur1 var2=valeur2
L'idée, c'est donc de copier mon fichier1 vers fichier2 et de remplacer dans fichier2 __var__ par le contenu de $var et __var2__ par le contenu de $var2...
Pour l'instant, j'arrive à faire ca :
Code:cat fichier1 | sed 's/__\(.*\)__/${\1}/g' >fichier2
Ce qui donne un fichier2 qui ressemble à :
Code:
1
2
3
4 truc ${var1} chose machin ${var2} bidule
Le résultat attendu serait plutôt :
Code:
1
2
3
4 truc valeur1 chose machin valeur2 bidule
A préciser bien sûr que si j'ai, dans fichier1, le motif __supervariable__, il doit être remplacé par le contenu de $supervariable...
La substitution des variables fonctionne avec le code suivant :
Code:
1
2
3 while read i; do echo $i | eval echo $(sed 's/__\(.*\)__/${\1}/g') >>fichier2 done <fichier1
Le souci, c'est que mon fichier2 s'en retrouve amputé de toutes les indentations... J'imagine que c'est le eval qui est responsable de cette amputation...
Et du coup, là, je bloque... J'ai essayé avec awk et du gensub, mais je suis confronté aux mêmes problèmes finalement...
Si quelqu'un a une idée, c'est avec grand plaisir que j'accueillerais sa solution :)
Merci d'avance à tous.
Deupac.