Re: sed dans perl

Pàgina inicial

Reply to this message
Autor: Patrick Dupre
Data:  
A: Marc TERRIER
CC: La Guilde
Assumpte: Re: sed dans perl
Merci pour les commentaires.

Voici des explications.
J'ai fait se .pl en urgence

===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre@???
 Laboratoire de Physico-Chimie de l'Atmosphère | |
 Université du Littoral-Côte d'Opale           | |
 Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
 189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
===========================================================================



> Sent: Wednesday, October 15, 2014 at 4:02 PM
> From: "Marc TERRIER" <marc.terrier@???>
> To: "Patrick Dupre" <pdupre@???>
> Cc: "La Guilde" <guilde@???>
> Subject: Re: sed dans perl
>
> Le 15/10/2014 15:35, Patrick Dupre a écrit :
> > Bonjour,
> >
> > Lorsque je fais:
> >
> > system ("sed 's;^[\\]bibliography{.*;\\bibliography{references};' $file_name > $dir/$file_name") ;
> >
> >
> > je n'ai pas la substitution:
> > \bibliography{references}
> > mais
> > bibliography{references}
> >
> > J'ai essaye different trucs sans succes.
> >
> > Si je le fais la commande sed directement en shell ca marche.
> >
> > Merci.
> >
> > ===========================================================================
> >   Patrick DUPRÉ                                 | | email: pdupre@???
> >   Laboratoire de Physico-Chimie de l'Atmosphère | |
> >   Université du Littoral-Côte d'Opale           | |
> >   Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
> >   189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
> > ===========================================================================

>
> Bonjour,
>
> Première chose que je remarque : tu as une accolade ouvrante après le
> premier bibliography, sans accolade fermante. Ce n'est pas grave à cause
> du .* juste après, mais était-ce volontaire ?


Oui, car je n'avais juger utile de verifier qu'il y avait une accolade fermante.

> Deuxième chose : je ne comprends pas pourquoi tu mets entre crochets la
> première paire d'antislashs ? Même si je ne suis pas un expert de sed,
> pour moi, les crochets servent à dire "n'importe quel caractère parmi
> ceux listés entre les crochets", et là, tu n'en mets qu'un, l'antislash
> qu'il faut doubler pour qu'il soit reconnu comme tel. Alors, pourquoi ?
> Ai-je raté une case, ou deux ?


La raison est simple: lorsque j'ai essaye
system ("sed 's;^\\bibliography{.*;\\\\bibliography{references};' $file_name > $dir/$file_name") ;
Cela ne marchait pas, donc j'ai trouve une autre solution!
Peut-etre
system ("sed 's;^\\\\bibliography{.*;\\\\bibliography{references};' $file_name > $dir/$file_name") ;

est OK?
> Troisième chose : je suis d'accord avec la réponse que PK vient de te
> faire pendant que j'écrivais ce mail-ci : pourquoi utiliser sed, ici,
> alors que perl sait très bien faire ce genre de substitutions ? C'est
> appeler à New York pour avoir le 22 à Asnières, non ?


OK,
Mais je savais comment faire avec sed mais pas en perl.
Comment je peux editer directement en perl?

Et encore Merci.

> Cdlt,
>
> --
> Marc TERRIER
>