OVH Cloud OVH Cloud

Comment changer une adresse email dans plusieurs fichiers?

17 réponses
Avatar
GP
Tiens, c'est bizarre! Ça fait longtemps que je ne suis pas venu faire
un tour, mais j'ai 15 messages dans le groupe configuration et 2100
dans débats. Est-ce, après fr.comp.os.linux, le group configuration a
lui aussi été abandonné? Mais venons en aux faits...

Je veux changer mon adresse email dans plusieurs fichiers html.
L'ancienne étant, disons gp@ici.com, la nouvelle, gp à la-bas.org ,
j'ai essayé avec ce script que j'ai trouvé sur le net:

perl -pi -e "s/oldstring/newstring/g;" *

Pour remplacer simplement tonton par tata dasn un texte, pas de
problème, mais le @, le à ou les espaces doivent occasionner des
problèmes et aucun changement n'est effectué.

Soyez gentils de ne pas me dire de me taper tout Perl pour faire un
remplacement, autrement je retourne à Windows. Je sais que Emacs fait
ça et je l'ai sur ma Slack, mais se servir de Emacs n'a pas l'air
d'être de la tarte non plus. Si quelques instructions suffisent, je
suis prenant. Qui sait, je me convertirai peut-être à Emacs :)

Autrement, n'y aurait-il pas un éditeur html open source qui ne
nécessite pas toutes sortes de librairies additionnelles, de
plug-ins et de lectures à n'en plius finir pour faire une recherche
remplacement. Un éditeur qui ne fout pas la grosseur des fontes à tous
les débuts de ligne, évidemment. Vous savez, le genre avec un bouton
"search and replace in all open files" ?

Quanta ne fait pas ça, ce que je trouve plus que surprenant vu que le
développement sur cet éditeur se poursuit depuis longtemps. Il me
semble que, pour un éditeur html, c'est une opération tout à fait
essentielle, non?

Et Bluefish? Il s'en tire mieux? Change-t-il aussi les è en è
et vice-versa?

Merci d'avance!

GP







-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----

7 réponses

1 2
Avatar
GP
GP wrote:

-g


Oups! Je voulais dire /g , qui y est effectrivement, tout comme /s .

Voici ce qu'on dit au sujet de /s dans le document que tu as suggéré:

«Si le modificateur /s est spécifié, les suites de caractères qui sont
translittérés par le même caractère sont agrégées en un seul caractère.»

Une chance que tu m'as expliqué ce que /s faisait autrement, je n'y
pigerais que dalle. Pour être franc, je n'y pige toujours que dalle!
Ç'a beau avoir passé le test Bescherelles, ça ne passe pas le mien.

Il y a de la doc qui est absolument abominable!

GP



-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----

Avatar
GP
keywords: perl replace replacement slash slashes quotes

Francois Wisard wrote:

Essaye

perl -pi -e
"s#http://bla.bla.com/index.html#http://glou.glou.com/truc.html#g;"

Tu n'auras plus à protéger tes slashes...


Ça fonctionne impec et je pense qu'il est en général préférable
d'utiliser s# #g plutôt que s/ /g , vu que les slashes reviennent plus
souvent. J'ai toutefois découvert qu'il faut aussi protéger les ",
mais pas le signe = , par contre .

Bizarre! Est-ce que = ne fait pas partie de la syntaxe Perl?

GP



-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----

Avatar
GP
J'oubliais... que faut-il ajouter pour faire le remplacement sans
égard à la casse (majuscules/minuscules)?

perl -pi -e
"s#http://bla.bla.com/index.html#http://glou.glou.com/truc.html#g;"



GP



-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----


Avatar
Francois Wisard
On Fri, 24 Oct 2003 23:31:44 -0400, GP wrote:
J'oubliais... que faut-il ajouter pour faire le remplacement sans
égard à la casse (majuscules/minuscules)?

perl -pi -e

"s#http://bla.bla.com/index.html#http://glou.glou.com/truc.html#gi;"

Juste ajouter "i" à la fin (avant le point-virgule)

--
Pas forcément. Foutre, c'est balancer la sauce, cracher la purée, pas
pénétrer, si mon argot est bon...
Mais bon, un snif au foutre, c'est exotique, je reconnais
+++ FW in fr.lettres.langue.francaise +++

Avatar
Francois Wisard
On Fri, 24 Oct 2003 22:50:35 -0400, GP wrote:
Ça fonctionne impec et je pense qu'il est en général préférable
d'utiliser s# #g plutôt que s/ /g , vu que les slashes reviennent plus
souvent. J'ai toutefois découvert qu'il faut aussi protéger les ",
mais pas le signe = , par contre .

Bizarre! Est-ce que = ne fait pas partie de la syntaxe Perl?


Si, mais il n'est pas utilisable dans une expression régulière. De mémoire
je dirais qu'il faut protéger @, %, (, ), ?, ., *, ^, $, ", +...

Un truc utile, c'est l'utilisation des parenthèses.

s/(un)(deux)/$2$1/g remplacera tous les "undeux" par "deuxun" (le g signifie
que tu veux changer plusieurs fois par ligne si le cas se présente)

Les expressions régulières sont très puissantes.

Par exemple:

s/^s+.*(d+)/t$1/ remplacera toutes les lignes commencant par un ou
plusieur espaces (ou tabs) suivis de n'importe quoi jusqu'à un nombre par un
tab suivi de ce npmbre.

Donc
retret4353454
oweufks 87
oierekjfks.99
seront remplacés
par
4353454
87
99
etc.


--
Pourquoi les durs pètent froid ?
Je renonce à trouver un contrepet, et je me rabats donc vers un jeu de mot

laid (et quelque peu approximatif) : "Parce que le mou pète chaud". +++ PP
in fr.misc.divers +++

Avatar
GP
Francois Wisard wrote:
On Fri, 24 Oct 2003 23:31:44 -0400, GP wrote:

J'oubliais... que faut-il ajouter pour faire le remplacement sans
égard à la casse (majuscules/minuscules)?



perl -pi -e
"s#http://bla.bla.com/index.html#http://glou.glou.com/truc.html#gi;"

Juste ajouter "i" à la fin (avant le point-virgule)


À la fin? Ah bon! C'est bien la première fois que je vois un i "à la
fin" pour ne pas tenir compte de la casse!

Et le -pi et le -e, qu'est-ce que ça veut dire? J'ai fait une
recherche avec -pi et même -p et il n'y a apparemment rien à ce sujet
sur le site. Bizarre!

GP




-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----


Avatar
GP
Francois Wisard wrote:
On Fri, 24 Oct 2003 22:50:35 -0400, GP wrote:

Ça fonctionne impec et je pense qu'il est en général préférable
d'utiliser s# #g plutôt que s/ /g , vu que les slashes reviennent plus
souvent. J'ai toutefois découvert qu'il faut aussi protéger les ",
mais pas le signe = , par contre .

Bizarre! Est-ce que = ne fait pas partie de la syntaxe Perl?



Si, mais il n'est pas utilisable dans une expression régulière. De mémoire
je dirais qu'il faut protéger @, %, (, ), ?, ., *, ^, $, ", +...


et "-" aussi, je suppose. Voilà une liste intéressante.

Un truc utile, c'est l'utilisation des parenthèses.

s/(un)(deux)/$2$1/g remplacera tous les "undeux" par "deuxun" (le g signifie
que tu veux changer plusieurs fois par ligne si le cas se présente)


Assez clair.

Les expressions régulières sont très puissantes.

Par exemple:

s/^s+.*(d+)/t$1/ remplacera toutes les lignes commencant par un ou
plusieur espaces (ou tabs) suivis de n'importe quoi jusqu'à un nombre par un
tab suivi de ce npmbre.

Donc
retret4353454
oweufks 87
oierekjfks.99
seront remplacés
par
4353454
87
99


Mettons que c'était pour expliquer que perl est très puissant. Pour la
compréhension du processus, c'est moins bon.

Si j'étais toi, je ferais une demi-page sur Perl, histoire de montrer
quelques trucs utiles et d'intéresser les jeunes à apprendre le
langage. Moi, je me fais des copier-coller et je mets ça dans mon
grand livre Linux.

GP




-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----


1 2