Je veux générer un programme "sed" sur la base d'une liste de correspondances.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$ cat plop
identifiant1=valeur1
identifiant2=valeur2
 
$ generate-converter.ksh < plop
s:@identifiant1@:valeur1:g
s:@identifiant2@:valeur2:g
Le résultat sert de programme de commandes sed à appliquer à un fichier contenant les chaînes @identifiant1@ et @identifiant2@.

Pour que ça marche à coup sûr (que sed ne plante pas et fasse les bonnes modifications), j'ai besoin de savoir quels sont les caractères à quoter dans les parties droite et gauche d'une commande de substitution "sed".

D'après mon expérience et ce que j'ai trouvé sur internet, je dirais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
pour la partie gauche: 
^ . $ [ ] \ * + : (ou le caractère utilisé comme séparateur de substitution)
pour la partie droite: 
\ & : (ou le caractère utilisé comme séparateur de substitution)
En ai-je oublié?

PS: je viens de penser que je pourrais mettre chaque caractère entre crochets!
C'est-à-dire, générer quelque chose comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
s:[@][i][d][e][n][t][i][f][i][a][n][t][1][@]:[v][a][l][e][u][r][1]:g
Du coup, il ne reste plus qu'à régler le problème des caractères spéciaux entre crochets: ^ - [ ]