[awk] Remplacement de pattern comportant un caractère spécial
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:
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:
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:
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