Merci pour la réponse, ca correspond tout à fait à ma question, mais il s'avère qu'en fait mon problème est un peu plus compliqué :)
Cette solution fonctionne très bien, pour 1 remplacement sur un flux, mais mon traitement comporte n remplacements, certains sur 2 ou 3 lignes, d'autres sur 1 seule (la majorité). Apparement, l'utilisation de la fonction N induit des décalages dans la lecture du buffer et sed 'oublie' certaines occurences.
Pour être plus simple, je vais vous donner un exemple concret de mes traitements. Je cherche à traduire des fichiers Dia ( http://www.gnome.org/projects/dia/ ) à la volée avec sed.
J'ai donc des fichiers Dia, en français, et je souhaite les passer en anglais. Les fichiers Dia se présentent sous la forme d'un flux XML compressé en gzip (pas obligatoire).
Je cherche à traduire les textes <dia:string>...</dia:string> et j'utilise pour cela un script sed qui ressemble à ça :
[...]
s/Espace noyau/Kernel-space/g
s/Interface noyau/Kernel interface/g
s/Vecteur de fonctions/Function vector/g
# Prog test
N;s/envoie les\ninstructions/sends\ncommands/g
N;s/envoie les\névénements/sends\nevents/g
s/controle/controls/g
[...]
Apparement, le fait de rajouter les commandes 'N' décale le parsing réalisé par sed et je perd certains remplacements qui auraient du être fait.
J'avoue que je ne suis pas à l'aise avec sed et ses manipulations de buffer...
Une idée ?
[^] # Re: multi lignes
Posté par Degrémont Aurélien . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 1.
Merci pour la réponse, ca correspond tout à fait à ma question, mais il s'avère qu'en fait mon problème est un peu plus compliqué :)
Cette solution fonctionne très bien, pour 1 remplacement sur un flux, mais mon traitement comporte n remplacements, certains sur 2 ou 3 lignes, d'autres sur 1 seule (la majorité). Apparement, l'utilisation de la fonction N induit des décalages dans la lecture du buffer et sed 'oublie' certaines occurences.
Pour être plus simple, je vais vous donner un exemple concret de mes traitements. Je cherche à traduire des fichiers Dia ( http://www.gnome.org/projects/dia/ ) à la volée avec sed.
J'ai donc des fichiers Dia, en français, et je souhaite les passer en anglais. Les fichiers Dia se présentent sous la forme d'un flux XML compressé en gzip (pas obligatoire).
Un simple zcat donne le contenu suivant : Je cherche à traduire les textes <dia:string>...</dia:string> et j'utilise pour cela un script sed qui ressemble à ça : Apparement, le fait de rajouter les commandes 'N' décale le parsing réalisé par sed et je perd certains remplacements qui auraient du être fait. J'avoue que je ne suis pas à l'aise avec sed et ses manipulations de buffer... Une idée ?