Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

moulinette de remplacement de texte

1 réponse
Avatar
Christian
bonjour,

j'ai un fichier "modele.html" dans lequel j'ai des chaines de
caractères CHAINE1 CHAINE2 etc... que je voudrais remplacer par des
chaines diverses contenues dans un fichier csv

exemple :

modele.txt est
Je m'appelle CHAINE1 et j'aime CHAINE2

dans le csv j'ai
toto;les fraises;fichier1.html
gudule;Maman;fichier2.html

le but est d'avoir :
fichier1.html avec "Je m'appelle toto et j'aime les fraises"
etc...

sauf que j'ai plusieurs centaines de fichiers et pour chaque 25 chaines
à remplacer

Quelle est la façon la plus simple de scripter ça ?

Merci d'avance
Christian

1 réponse

Avatar
David LE BOURGEOIS
bonjour,


Bonjour.

j'ai un fichier "modele.html" dans lequel j'ai des chaines de caractères
CHAINE1 CHAINE2 etc... que je voudrais remplacer par des chaines
diverses contenues dans un fichier csv

exemple :

modele.txt est
Je m'appelle CHAINE1 et j'aime CHAINE2

dans le csv j'ai
toto;les fraises;fichier1.html
gudule;Maman;fichier2.html

le but est d'avoir :
fichier1.html avec "Je m'appelle toto et j'aime les fraises"
etc...

sauf que j'ai plusieurs centaines de fichiers et pour chaque 25 chaines
à remplacer

Quelle est la façon la plus simple de scripter ça ?


En perl ?

$ cat rp
#!/usr/bin/perl -wn

if (/^([^;]+);([^;]*);([^;]+)$/) {
my ($search, $replace, $file) = ($1, $2, $3);
open FIC, $file or die;
foreach (<FIC>) {
s/$search/$replace/g;
print;
}
close FIC;
}

$ cat csv
foo;bar;a
Bonjour;Bonsoir;b
$ cat a
Bonsoir, foo.
$ cat b
Bonjour, bar.
$ ./rp csv
Bonsoir, bar.
Bonsoir, bar.

(le $ représente le prompt du shell)

Merci d'avance


De rien
Christian


--
David LE BOURGEOIS

RÉVOLTÉ

P : Ça n'a pas l'air d'aller...
M : Nan, ça va pas ! J'ai lu un texte de BHL et un texte de Glucksmann
sur la guerre au Kosovo !
P : Qu'est-ce que tu veux... tu as été victime de dommages collatéraux...