OVH Cloud OVH Cloud

inserer des lignes...

1 réponse
Avatar
kurtz_le_pirate
bonjour,

extrait de script :
-----------------------------------------------------------------
...
open (FILE,"<",$fileName)or die ("...");
@allLines=<FILE>;
close (FILE);

open (FILE,">",$fileName) or die ("...");
foreach $thisLine(@allLines) {
if ($thisLine =~ /vmxnet/) {
print FILE "$thisLine";
print FILE "alias eth1 vmxnet\n";
print FILE "alias eth2 vmxnet\n";
print FILE "alias eth3 vmxnet\n";
}
else {
print FILE "$thisLine";
}
}
close (FILE);
...
-----------------------------------------------------------------
je lis donc tout le fichier puis je l'écrase et j'y écrit mes lignes
et,
lorsque j'ai identifié le bon endroit, j'insère de nouvelles lignes.

ça marche très bien. mais y-a-t-il un moyen plus simple ?


--
klp

1 réponse

Avatar
Paul Gaborit
À (at) Fri, 24 Mar 2006 14:04:34 +0100,
"kurtz_le_pirate" écrivait (wrote):
je lis donc tout le fichier puis je l'écrase et j'y écrit mes lignes
et, lorsque j'ai identifié le bon endroit, j'insère de nouvelles
lignes.

ça marche très bien. mais y-a-t-il un moyen plus simple ?


Lire le fichier original et le recopier au fur et à mesure dans un
fichier temporaire (en y insérant les éventuelles nouvelles lignes)
puis renommer le fichier temporaire pour qu'il remplace le fichier
original.

Ça remplace le besoin de stockage en mémoire par un besoin de stockage
sur disque (c'est plus sûr si le fichier est gros) sans ajouter
d'opérations supplémentaires (autant de lectures/écritures qu'avant).

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>