Bonjour,

Je fait de nouveau appel à vos services pour l'écriture d'un script (shell) qui permettra de créer un fichier B depuis un fichier (original) A en remplaçant 2 champs situés aléatoirement dans le fichier.

Voici mon fichier (original) A :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SERVICE;ADD;£Host£;Template;Template_£Inst£;tutu
SERVICE;£Host£;Template;;1;Servcice_£Inst£;tutu;Fic;£Inst£
SERVICE;£Host£;Template;1;Servcice_£Inst£;tutu;Fic;£Inst£
SERVICE;£Host£;Template;Servcice_£Inst£;tutu;Fic;£Inst£;toto £Inst£;1
L'objectif serait donc de remplacer dans un nouveau fichier les motifs £Host£ et £Inst£ de chaque ligne.

J'aurai souhaité exécuter cette commande via awk mais j'avoue peiner un peu avec les caractères spéciaux qui permettent dans mon cas de me servir de délimiteur sur mon motif...


Voici mon script actuel :

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
 
#!/bin/bash
 
ficENT=/home/pi/scripts/FicOri
ficSOR=/home/pi/scripts/FicOKI
var1=monserveur
var2=inst-01-btch
 
awk -v v1=$var1 -v v2=$var2 '
{
  gsub("£Host£", v1)
  gsub("£Inst£", v2)
  print
}' $ficENT >> $ficSOR
 
exit

Je n'arrive pas à échapper le caractère "£".

Le résultat attendu serait

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
SERVICE;ADD;monserveur;Template;Template_inst-01-btch;tutu
SERVICE;monserveur;Template;;1;Servcice_inst-01-btch;tutu;Fic;inst-01-btch
SERVICE;monserveur;Template;1;Servcice_inst-01-btch;tutu;Fic;inst-01-btch
SERVICE;monserveur;Template;Servcice_inst-01-btch;tutu;Fic;inst-01-btch;toto inst-01-btch;1

Auriez-vous SVP une piste ou une solution pour résoudre mon PB ?

Par avance merci