Je veux générer un programme "sed" sur la base d'une liste de correspondances.
Le résultat sert de programme de commandes sed à appliquer à un fichier contenant les chaînes @identifiant1@ et @identifiant2@.
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
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:
En ai-je oublié?
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)
PS: je viens de penser que je pourrais mettre chaque caractère entre crochets!
C'est-à-dire, générer quelque chose comme:
Du coup, il ne reste plus qu'à régler le problème des caractères spéciaux entre crochets: ^ - [ ]
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
Partager