Hur gör jag för att ta bort en text som står i mellan tex <!--1--> och <!--2-->
se exempel
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hallå hallå denna text vill jag behålla<p>\n";
print "<!--1-->\n";
print "Denna text vill jag ta bort\n";
print "<!--2-->\n";
Inte riktigt säker på vad du är ute efter (skall man gå efter ditt exempel är det ju bara att låta bli att ha med den näst sista raden, så är ju allt mellan avgränsarna borta). :)
I ett tidigare inlägg postade jag ett sökscript, som letar efter avgränsarna <!-- drinkstart --> och <!-- drinkslut -->, och bearbetar det som står däremellan. Kan det möjligen vara till hjälp?
Annars får du gärna utöka problembeskrivningen lite.
Någonting åt det här hållet borde funka (förutsätter att filen du vill läsa från är öppnad med filhantaget READ, och att filen du vill skriva till är öppnad med filhantaget WRITE).
while (<READ> ) {
print WRITE;
if (/<!--1-->/) {
while (<READ> ) {
if (/<!--2-->/) {
print WRITE;
last;
}
}
}
}
Du måste skapa en ny, tom fil att skriva till. Verkar som du använt samma fil att läsa från som att skriva till?
Efter att den nya filen är färdigskriven kan du ersätta den gamla med den nya om du vill.
Följande korta testscript fungerar i.a.f. för mig:
#!/usr/bin/perl -w
open (READ, "<fil1.txt") or die;
open (WRITE, ">fil2.txt") or die;
while (<READ> ) {
print WRITE;
if (/<!--1-->/) {
while (<READ> ) {
if (/<!--2-->/) {
print WRITE;
last;
}
}
}
}
close READ;
close WRITE;