Faire un "cherche et remplace" dans un fichier en Perl ?

Faire un "cherche et remplace" dans un fichier en Perl ? - Perl - Programmation

Marsh Posté le 10-07-2007 à 09:03:16    

Bonjour,
 
Je cherche un moyen de faire un "cherche et remplace" dans un fichier mais seulement jusqu'a un certain endroit du fichier.
 
Exemple, on remplace toto par titi jusqu'a =C01
toto
toto
toto
=C01
toto
toto
 
Après remplacement:
titi
titi
titi
=C01
toto
toto
 
Quelqu'un aurait un idée ?
 
Merci d'avance.
 

Reply

Marsh Posté le 10-07-2007 à 09:03:16   

Reply

Marsh Posté le 10-07-2007 à 09:13:03    

Si ton fichier est pas trop gros:
- tu balourdes tout le contenu de ton fichier dans une variable
- tu lis ligne par ligne
- tu t'arrètes si tu trouves ton motif de fin
-  sinon tu fais ton remplacement
Et tu printes tout ça dans le fichier originel.
 
Et si le fichier est gros et bien tu fais pareil mais ligne par ligne pour la lecture du fichier et tu passes par un fichier temp pour la nouvelle version.

Reply

Marsh Posté le 10-07-2007 à 09:27:21    

Citation :

- tu t'arrètes si tu trouves ton motif de fin


 
OK Merci mais tu connais la commande perl pour faire ça ? (oui, je sais je suis nul, d'habitude je fais du shell)

Reply

Marsh Posté le 10-07-2007 à 09:28:27    

Dans ta boucle:

Code :
  1. last if /uneRegexPourMatcherTonMotif/;


Message édité par anapajari le 10-07-2007 à 09:28:47
Reply

Marsh Posté le 10-07-2007 à 09:56:08    

OK c'est parfait.
 
Merci beaucoup

Reply

Marsh Posté le 10-07-2007 à 13:02:04    

perl -i -pe '(1../^=C01/)&&s/toto/titi/g'

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed