[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Aide regex



On Fri, Dec 10, 2004 at 03:33:19PM +0100, Francois Cerbelle wrote:
> Tout le texte est deja traduit, et les chaines à traduire (les entrees
> d'index) sont suffisemment longues et en anglais pour ne pas etre dans
> le texte. ;-) D'autre part, si je peux construire un fichier :
> s/{_Index blabla:we _}/{_Index bidule:we _}/
> 
> Ce sera une securite de plus, mais elle n'est pas indispensable, etant
> donne mon texte.

Bon ok.

> C'est deja fait, j'ai fait passer une macro vim pour reassembler les
> lignes. Le travail est vraiment pre-maché ! ;-) Il ne me manque plus
> que cette saleté de regex ! ;-)
 
Rien que d'ouvrir le man de sed m'a fait encore plus mal à
la tête, alors, en Perl:

#! /usr/bin/perl

while (<>) {
    next unless /\{_Index/;

    s/\{_Index\s*(\{\w+\})?\s*(.*?)\s*_\}//;

    $set{$2}=1;

    redo;
}

foreach $i (sort keys %set) {
    print "%s/$i//g\n";
}


(Ça retire aussi les doublons et classe par ordre alphabétique, tant qu'on y est. Si ça n'est pas voulu, on peut simplfier:

#! /usr/bin/perl

while (<>) {
    next unless /\{_Index/;

    s/\{_Index\s*(\{\w+\})?\s*(.*?)\s*_\}//;
    print "%s/$2//g\n";
    redo;
}


Voilà... ça marche pour ton échantillon gratuit.

Dois-je conclure que FrameMaker sauvegarde en format texte?

Y.



Reply to: