Re: [ssfr] sed : remplacer guillemets anglais par guillements français |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
> > > > J'ai plusieurs fichiers tex où il faudrait remplacer les " par des «»,
> > > > je me dis que c'est pour sed ça.
> > > >
> > > > le motif est
> > > > "puis 0,1 ou plus espaces puis un mot puis 0,1 ou plus espaces et enfin"
> > > >
> > > > Ce motif doit être remplacé par
> > > >
> > > > «un_espace_insécable puis le mot puis un_espace_insécable puis »
> > > >
> > > > Faut traduire ça en sed maintenant, et c'est là que ça se complique
> > > > (pour moi).
> > >
> > > En perl :
> > >
> > > perl -p -i.old -e 's/"\s+(\w+)\s+"/« $1 »/' fichier.txt
> >
> > Désolé d'être mauvais joueur mais ça ne marche carrément pas ; sur mon
> > fichier test, voici la sortie :
> >
> > "un"
> > "deux"
> > "un mot"
> > « un »
> > " un mot voilà "
> > pas de mot
> >
> > et là non plus
> >
> >
> > Seuls les guillemets de la 4e ligne ont été remplacés.
>
>
> Tout simplement car ton motif initial ne correspond pas à ton exemple.
Oui tu as tout à fait raison, mes plus plates excuses. J'avais commencé
par écrire le motif au pif et "mot" pour moi signifiait "phrase" en fait
d'où ton égarement.
> Je cite : "puis 0,1 ou plus espaces puis un mot puis 0,1 ou plus espaces
> et enfin"
>
> Or dans ton exemple, la 5e ligne :
>
> " un mot voilà " <-- Ca fait trois mots là ! ;)
>
> D'ailleurs, l'exemple de Xavier ne fonctionnera pas non plus !
>
> Ceci devrait fonctionner (pas testé) :
>
> perl -p -i.old -e 's/\s*"\s*(.*)\s*?"/« $1 »/' fichier.txt
ça marche plus ou moins mais par sur plusieurs lignes, je croisque je
vais utiliser la méthode de Jacques, et je paufinirerai à la main
ensuite.
J'ai encore une petite question en passant. Les fichiers tex en question
sont tout pourris, il y a des mises à la ligne sauvages, des mots seuls
sur une ligne, ce genre de trucs. Je me demandais s'il n'existait pas un
moyen de remettre de l'ordre dans tout ça sans tout casser. Si ça
n'existe pas tant pis, on fera sans, mais s'il y a mon esprit esthétique
serait satisfait.
Excellente semaine à cette liste.
Steve
---