---
title: "Ta bort text mellan avgränsare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/19098-ta-bort-text-mellan-avgränsare"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "Sebek"
published: "2000-07-06T17:41:00.000Z"
updated: "2000-07-09T20:50:00.000Z"
replies: 6
views: 383
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/19098-ta-bort-text-mellan-avgränsare"
---

# Ta bort text mellan avgränsare

## #1 — Sebek, 2000-07-06T17:41Z

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";
```

Permalänk: https://www.webforum.nu/p/19098

## #2 — Robban, 2000-07-08T04:32Z

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](http://cgi.webforum.nu/wf/Forum14/HTML/000093.html) 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.

Permalänk: https://www.webforum.nu/p/340877

## #3 — Sebek, 2000-07-08T09:34Z

Alltså,

all text mellan två markerare (\<!--1--\>
och \<!--2--\> ) vill jag ta bort från en fil (test.txt).

Permalänk: https://www.webforum.nu/p/340878

## #4 — Robban, 2000-07-08T20:06Z

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;
      }
    }
  }
}
```

Permalänk: https://www.webforum.nu/p/340879

## #5 — Robban, 2000-07-09T04:08Z

Ovanstående förutsätter att markörerna står på egna rader, kanske bör nämnas. :)

Permalänk: https://www.webforum.nu/p/340880

## #6 — Sebek, 2000-07-09T08:55Z

Det funkade inte, om textfilen så ut så här när man körde 

\<!--1--\>
Hej svejs
\<!--2--\>

så såg den ut så här efter körning

\<!--1--\>
Hej svejs
\<!--2--\>\<!--1--\>
\<!--2--\>

Permalänk: https://www.webforum.nu/p/340881

## #7 — Robban, 2000-07-09T20:50Z

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;
```

Om fil1.txt innehåller:

Rad1
Rad2
\<!--1--\>
Rad3
Rad4
\<!--2--\>
Rad5
Rad6

Så innehåller fil2.txt efter körningen:

Rad1
Rad2
\<!--1--\>
\<!--2--\>
Rad5
Rad6

Permalänk: https://www.webforum.nu/p/340882

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/19098-ta-bort-text-mellan-avgränsare
