• =?UTF-8?Q?Zeilen_zwischen_2_W=c3=b6rtern_l=c3=b6schen?=

    From Klaus Becker@21:1/5 to All on Sat Jan 1 18:00:02 2022
    Erstmal Frohes Neues !

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen
    zwischen 2 Wörtern löschen (inklusive "Wort1" und "Wort2")

    Das habe ich mit

    sed -i '/Wort1,/,/Wort2/d' textdatei.txt

    versucht. Klappt, aber zu gut! Wenn der Text, der mit "Wort1" beginnt
    und mit "Wort2" endet z. B. am Anfang und am Ende der Datei auftaucht,
    wird alles gelöscht, was ich natürlich nicht will.

    Ich möchte also, dass der übrige Text nicht angerührt wird, weiß aber nicht, wie ich das machen soll oder wie ich das im Web suchen soll.

    Gruß

    Klaus

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael@21:1/5 to Klaus Becker on Sat Jan 1 18:30:01 2022
    On Saturday, January 1, 2022 5:54:54 PM CET, Klaus Becker wrote:
    Ich möchte per Skript in einer Textdatei immer wiederkehrende
    Zeilen zwischen 2 Wörtern löschen (inklusive "Wort1" und
    "Wort2")

    awk "
    BEGIN {echo = 1}
    .*${Wort1}.* {echo = 0}
    {if (echo) print}
    .*${Wort2}.* {echo = 1}
    " <file>

    so, oder so aehnlich...

    allerdings wird dabei die komplette zeile geloescht, in der sich die
    woerter 1 und 2 befinden...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stefan Klein@21:1/5 to All on Sat Jan 1 18:30:02 2022
    Dir auch ein Frohes Neues!

    Am Sa., 1. Jan. 2022 um 17:55 Uhr schrieb Klaus Becker <colonius47@gmail.com
    :

    Erstmal Frohes Neues !

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen zwischen 2 Wörtern löschen (inklusive "Wort1" und "Wort2")

    Das habe ich mit

    sed -i '/Wort1,/,/Wort2/d' textdatei.txt

    versucht. Klappt, aber zu gut! Wenn der Text, der mit "Wort1" beginnt
    und mit "Wort2" endet z. B. am Anfang und am Ende der Datei auftaucht,
    wird alles gelöscht, was ich natürlich nicht will.


    Bei mir verhält sich sed anders als von dir beschrieben:

    $ echo -e 'start wort1 del1 wort2 keep1 wort1 del2 wort2' | sed '/wort1/,/wort2/d

    sed löscht die ganze Zeile, füge ich Umbrüche ein:

    $ echo -e 'start\nwort1,\ndel1\nwort2\nkeep1\nwort1\ndel2\nwort2' | sed '/wort1/,/wort2/d'
    start
    keep1

    bleibt der Text "außerhalb" von /wort1/,/wort2/ stehen.

    Kannst du das Problem genauer formulieren?

    Grüße,
    Stefan

    <div dir="ltr"><div>Dir auch ein Frohes Neues!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Sa., 1. Jan. 2022 um 17:55 Uhr schrieb Klaus Becker &lt;<a href="mailto:colonius47@gmail.com">colonius47@gmail.com</a>&gt;:<br></
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Erstmal Frohes Neues !<br>

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen <br> zwischen 2 Wörtern löschen (inklusive &quot;Wort1&quot; und &quot;Wort2&quot;)<br>

    Das habe ich mit<br>

    sed -i &#39;/Wort1,/,/Wort2/d&#39; textdatei.txt<br>

    versucht. Klappt, aber zu gut! Wenn der Text, der mit &quot;Wort1&quot; beginnt <br>
    und mit &quot;Wort2&quot; endet z. B. am Anfang und am Ende der Datei auftaucht, <br>
    wird alles gelöscht, was ich natürlich nicht will.<br></blockquote><div><br></div><div>Bei mir verhält sich sed anders als von dir beschrieben:</div><div><br></div><div>$ echo -e &#39;start wort1 del1 wort2 keep1 wort1 del2 wort2&#39; | sed &#39;/
    wort1/,/wort2/d</div><div><br></div><div>sed löscht die ganze Zeile, füge ich Umbrüche ein:<br></div><div><br></div><div>$ echo -e &#39;start\nwort1,\ndel1\nwort2\nkeep1\nwort1\ndel2\nwort2&#39; | sed &#39;/wort1/,/wort2/d&#39;<br>start<br>keep1</div><
    <br></div><div>bleibt der Text &quot;außerhalb&quot; von /wort1/,/wort2/ stehen.</div><div><br></div><div>Kannst du das Problem genauer formulieren?</div><div><br></div><div>Grüße,</div><div>Stefan<br></div><div> </div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Klaus Becker@21:1/5 to All on Sat Jan 1 20:40:01 2022
    Am 01/01/2022 um 18:24 schrieb Stefan Klein:
    Dir auch ein Frohes Neues!

    Am Sa., 1. Jan. 2022 um 17:55 Uhr schrieb Klaus Becker
    <colonius47@gmail.com <mailto:colonius47@gmail.com>>:

    Erstmal Frohes Neues !

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen
    zwischen 2 Wörtern löschen (inklusive "Wort1" und "Wort2")

    Das habe ich mit

    sed -i '/Wort1,/,/Wort2/d' textdatei.txt

    versucht. Klappt, aber zu gut! Wenn der Text, der mit "Wort1" beginnt
    und mit "Wort2" endet z. B. am Anfang und am Ende der Datei auftaucht,
    wird alles gelöscht, was ich natürlich nicht will.


    Bei mir verhält sich sed anders als von dir beschrieben:

    $ echo -e 'start wort1 del1 wort2 keep1 wort1 del2 wort2' | sed '/wort1/,/wort2/d

    sed löscht die ganze Zeile, füge ich Umbrüche ein:

    $ echo -e 'start\nwort1,\ndel1\nwort2\nkeep1\nwort1\ndel2\nwort2' | sed '/wort1/,/wort2/d'
    start
    keep1

    bleibt der Text "außerhalb" von /wort1/,/wort2/ stehen.

    Kannst du das Problem genauer formulieren?


    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2

    Die Abschnitte bestehen jeweils aus vielen Zeilen und enthalten jedesmal
    einen anderen Text. "Wort1 blabla Wort2" ist immer der gleiche Text.

    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B. nur
    "Abschnitt 1" übriglassen.

    Der Hintergrund: ich mache mir fast jeden Tag mit Artikeln aus dem Web
    meine eigene Zeitung und drucke sie. Ich habe mir ein Skript
    zusammengebastelt, das den gesamten zu druckenden Text nach meinen
    Wünschen bearbeitet, vor allem alles überflüssige löscht.

    Klaus


    Grüße,
    Stefan

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Max R. P. Grossmann@21:1/5 to All on Sat Jan 1 21:40:01 2022
    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2

    Die Abschnitte bestehen jeweils aus vielen Zeilen und enthalten jedesmal einen anderen Text. "Wort1 blabla Wort2" ist immer der gleiche Text.

    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B. nur "Abschnitt
    1" übriglassen.

    Ich glaube, das Problem liegt darin, dass sed grundsätzlich gierig ("greedy") ist und in der Tat keine offensichtliche Methode bietet, dieses Verhalten zu deaktivieren. Vielleicht hilft [1]?

    Sonst würde ich das einfach mit einem Pythonskript lösen.

    Max


    [1] https://0x2a.at/blog/2008/07/sed--non-greedy-matching/

    -----BEGIN PGP SIGNATURE-----

    iHUEABYIAB0WIQSgmpL8UBXuhhpwmFEZmYYcFja6mwUCYdC7sgAKCRAZmYYcFja6 m5VEAQCKlVuBJyCr/IWBUCFT/HPlQtb+f5RxXhUBswn/7nkCFAD9FfEdrhTkL5OY G8/e3WyNu0dyg/KXEuA2wA1csMI38gA=
    =ot2u
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stefan Klein@21:1/5 to All on Sat Jan 1 21:20:01 2022
    Am Sa., 1. Jan. 2022 um 20:36 Uhr schrieb Klaus Becker <colonius47@gmail.com
    :



    Kannst du das Problem genauer formulieren?


    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2


    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B. nur "Abschnitt 1" übriglassen.


    Sie lässt:
    Abschnitt 1
    Abcshnitt 3
    übrig.


    https://www.gnu.org/software/sed/manual/html_node/Range-Addresses.html#Range-Addresses
    schreibt:

    If the second address is a regexp, then checking for the ending match
    will start with the line *following* the line which matched the first
    address: a range will always span at least two lines (except of course if
    the input stream ends).

    Wenn der erste Teil der Range in Zeile 2 des input matched geht sed schon weiter nach Zeile 3, die nächste Zeile die matched ist dann Zeile 4.

    Eine Mögliche Lösung ist den Fall das Wort1 und Wort2 in der gleichen Zeile stehen zuerst zu behandeln:

    /Wort1.*Wort2/d # start und stop in der gleichen Zeile
    /Wort1/,/Wort2/d # start und stop in mehreren Zeilen

    Grüße,
    Stefan

    <div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Sa., 1. Jan. 2022 um 20:36 Uhr schrieb Klaus Becker &lt;<a href="mailto:colonius47@gmail.com">colonius47@gmail.com</a>&gt;:<br></div><blockquote
    class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>

    &gt; Kannst du das Problem genauer formulieren?<br>


    Ich will&#39;s mal versuchen. Ich habe einen Text<br>


    Abschnitt 1<br>
    Wort1 blabla Wort2<br>
    Abschnitt 2<br>
    Wort1 blabla Wort2<br>
    Abschnitt 3<br>
    Wort1 blabla Wort2<br>
    <br><br>
    Ich möchte die Zeilen mit &quot;Wort1 blabla Wort2&quot; ganz löschen, die anderen <br>
    Abschnitte aber intakt lassen. Meine obige Lösung würde z. B. nur <br> &quot;Abschnitt 1&quot; übriglassen.<br></blockquote><div><br></div><div>Sie lässt:</div><div>Abschnitt 1</div><div>Abcshnitt 3</div><div>übrig.<br></div><div><br></div><div><br></div><div><a href="https://www.gnu.org/software/sed/manual/html_node/
    Range-Addresses.html#Range-Addresses">https://www.gnu.org/software/sed/manual/html_node/Range-Addresses.html#Range-Addresses</a> schreibt:<br></div><div><br></div><div>&gt; If the second address is a <var>regexp</var>, then checking for the
    ending match will start with the line <em>following</em> the
    line which matched the first address: a range will always
    span at least two lines (except of course if the input stream
    ends). <br></div><div><br></div><div><div>Wenn der erste Teil der Range in Zeile 2 des input matched geht sed
    schon weiter nach Zeile 3, die nächste Zeile die matched ist dann Zeile 4.<br></div></div></div><div class="gmail_quote"><br></div><div class="gmail_quote">Eine Mögliche Lösung ist den Fall das Wort1 und Wort2 in der gleichen Zeile stehen zuerst zu
    behandeln:</div><div class="gmail_quote"><br></div><div class="gmail_quote">/Wort1.*Wort2/d # start und stop in der gleichen Zeile<br>/Wort1/,/Wort2/d # start und stop in mehreren Zeilen<br></div><div class="gmail_quote"><br></div><div class="gmail_quote"
    Grüße,</div><div class="gmail_quote">Stefan<br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From debian-mailing-lists@thomas.freit.a@21:1/5 to Klaus Becker on Sat Jan 1 22:20:02 2022
    Hallo Klaus,

    On 01.01.22 20:35, Klaus Becker wrote:
    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2

    Die Abschnitte bestehen jeweils aus vielen Zeilen und enthalten jedesmal einen anderen Text. "Wort1 blabla Wort2" ist immer der gleiche Text.

    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B. nur "Abschnitt 1" übriglassen.

    Wenn die zu löschende Zeile durch einen regulären Ausdruck einfach zu beschreiben ist reicht ja das zeilenweise Matching von sed aus, z.B. sed -i '/Wort1.*Wort2/d'
    liefert das (m.E.) gewünschte Ergebnis. Dabei ist .* eine beliebig lange Kette von Zeichen (ggf. auch kein Zeichen). Alternativ würde ich grep als Tool in den Raum
    stellen, Du kannst mittels "grep -v -E 'Wort1.*Wort2'" datei alle Zeilen ausgeben, die nicht dem Pattern entsprechen. Im Gegensatz zu sed mit "-i" kannst Du aber
    nicht direkt die Datei ändern, d.h. du muss die Ausgabe umleiten und mit einer temporären Datei mehr Arbeiten.

    Sollte das Beispiel stark vereinfacht sein und "Wort1 blabla Wort2" erstreckt sich auch über mehrere Zeilen ist es nicht mehr so einfach, dann könntest Du aber ggf. mit
    Perl zeilenübergreifend matchen und dir zu nutze machen, dass Perl auch non-greedy Matches (mittels ?) unterstützt, was sed m.E. nicht kann.

    hth,
    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Manfred Gil@21:1/5 to Klaus Becker on Sun Jan 2 13:10:01 2022
    Klaus Becker schrieb:


    Am 01/01/2022 um 18:24 schrieb Stefan Klein:
    Dir auch ein Frohes Neues!

    Am Sa., 1. Jan. 2022 um 17:55 Uhr schrieb Klaus Becker <colonius47@gmail.com <mailto:colonius47@gmail.com>>:

    Erstmal Frohes Neues !

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen
    zwischen 2 Wörtern löschen (inklusive "Wort1" und "Wort2")

    Das habe ich mit

    sed -i '/Wort1,/,/Wort2/d' textdatei.txt

    versucht. Klappt, aber zu gut! Wenn der Text, der mit "Wort1" beginnt
    und mit "Wort2" endet z. B. am Anfang und am Ende der Datei auftaucht,
    wird alles gelöscht, was ich natürlich nicht will.


    Bei mir verhält sich sed anders als von dir beschrieben:

    $ echo -e 'start wort1 del1 wort2 keep1 wort1 del2 wort2' | sed '/wort1/,/wort2/d

    sed löscht die ganze Zeile, füge ich Umbrüche ein:

    $ echo -e 'start\nwort1,\ndel1\nwort2\nkeep1\nwort1\ndel2\nwort2' | sed '/wort1/,/wort2/d'
    start
    keep1

    bleibt der Text "außerhalb" von /wort1/,/wort2/ stehen.

    Kannst du das Problem genauer formulieren?


    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2

    Die Abschnitte bestehen jeweils aus vielen Zeilen und enthalten
    jedesmal einen anderen Text. "Wort1 blabla Wort2" ist immer der gleiche
    Text.

    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die
    anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B.
    nur "Abschnitt 1" übriglassen.

    Der Hintergrund: ich mache mir fast jeden Tag mit Artikeln aus dem Web
    meine eigene Zeitung und drucke sie. Ich habe mir ein Skript zusammengebastelt, das den gesamten zu druckenden Text nach meinen
    Wünschen bearbeitet, vor allem alles überflüssige löscht.

    Klaus


    Grüße,
    Stefan

    Schnell und einfach per Python:

    <script>

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #
    # replace.py
    #

    original_Str = "Abschnitt 1 \nWort1 blabla Wort2\nAbschnitt 2\nWort1 blabla Wort2\nAbschnitt 3\nWort1 blabla Wort2"
    print(original_Str)
    # str.replace(strVariable, old, new[, count])
    replacedStr1 = str.replace(original_Str, "Wort1 ", "")
    replacedStr2 = str.replace(replacedStr1, "Wort2", "")
    print(replacedStr2)



    sollte das ergeben was Du dir vorstellst.

    und es geht bestimmt noch einfacher zum Schreiben :-)

    Gruß
    Manfred

    --
    Errare humanum est, sed in errare perseverare diabolicum.

    Irren ist menschlich, aber im irrtum zu verharren, ist teuflisch <
    von dem Theologen Hieronymus

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Klaus Becker@21:1/5 to All on Sun Jan 2 18:10:02 2022
    Am 02/01/2022 um 12:43 schrieb Manfred Gil:
    Klaus Becker schrieb:


    Am 01/01/2022 um 18:24 schrieb Stefan Klein:
    Dir auch ein Frohes Neues!

    Am Sa., 1. Jan. 2022 um 17:55 Uhr schrieb Klaus Becker
    <colonius47@gmail.com <mailto:colonius47@gmail.com>>:

    Erstmal Frohes Neues !

    Ich möchte per Skript in einer Textdatei immer wiederkehrende Zeilen >>> zwischen 2 Wörtern löschen (inklusive "Wort1" und "Wort2")

    Das habe ich mit

    sed -i '/Wort1,/,/Wort2/d' textdatei.txt

    versucht. Klappt, aber zu gut! Wenn der Text, der mit "Wort1" beginnt >>> und mit "Wort2" endet z. B. am Anfang und am Ende der Datei auftaucht, >>> wird alles gelöscht, was ich natürlich nicht will.


    Bei mir verhält sich sed anders als von dir beschrieben:

    $ echo -e 'start wort1 del1 wort2 keep1 wort1 del2 wort2' | sed
    '/wort1/,/wort2/d

    sed löscht die ganze Zeile, füge ich Umbrüche ein:

    $ echo -e 'start\nwort1,\ndel1\nwort2\nkeep1\nwort1\ndel2\nwort2' | sed
    '/wort1/,/wort2/d'
    start
    keep1

    bleibt der Text "außerhalb" von /wort1/,/wort2/ stehen.

    Kannst du das Problem genauer formulieren?


    Ich will's mal versuchen. Ich habe einen Text


    Abschnitt 1
    Wort1 blabla Wort2
    Abschnitt 2
    Wort1 blabla Wort2
    Abschnitt 3
    Wort1 blabla Wort2

    Die Abschnitte bestehen jeweils aus vielen Zeilen und enthalten
    jedesmal einen anderen Text. "Wort1 blabla Wort2" ist immer der gleiche
    Text.

    Ich möchte die Zeilen mit "Wort1 blabla Wort2" ganz löschen, die
    anderen Abschnitte aber intakt lassen. Meine obige Lösung würde z. B.
    nur "Abschnitt 1" übriglassen.

    Der Hintergrund: ich mache mir fast jeden Tag mit Artikeln aus dem Web
    meine eigene Zeitung und drucke sie. Ich habe mir ein Skript
    zusammengebastelt, das den gesamten zu druckenden Text nach meinen
    Wünschen bearbeitet, vor allem alles überflüssige löscht.

    Klaus


    Grüße,
    Stefan

    Schnell und einfach per Python:

    <script>

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #
    # replace.py
    #

    original_Str = "Abschnitt 1 \nWort1 blabla Wort2\nAbschnitt 2\nWort1 blabla Wort2\nAbschnitt 3\nWort1 blabla Wort2"
    print(original_Str)
    # str.replace(strVariable, old, new[, count])
    replacedStr1 = str.replace(original_Str, "Wort1 ", "")
    replacedStr2 = str.replace(replacedStr1, "Wort2", "")
    print(replacedStr2)



    sollte das ergeben was Du dir vorstellst.

    und es geht bestimmt noch einfacher zum Schreiben :-)

    Gruß
    Manfred


    Danke für alle Ideen. Damit muss ich mich aber erst mal
    auseinandersetzen. Bei Bedarf melde ich mich dann wieder.

    Guten Rutsch

    Klaus

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hartmut Niemann@21:1/5 to All on Tue Jan 4 21:00:01 2022
    Schnell und einfach per Python:

    <script>

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    #
    #  replace.py
    #

    original_Str = "Abschnitt 1 \nWort1 blabla Wort2\nAbschnitt 2\nWort1
    blabla Wort2\nAbschnitt 3\nWort1 blabla Wort2"
    print(original_Str)
    # str.replace(strVariable, old, new[, count])
    replacedStr1 = str.replace(original_Str, "Wort1 ", "")
    replacedStr2 = str.replace(replacedStr1, "Wort2", "")
    print(replacedStr2)

    </>

    sollte das ergeben was Du dir vorstellst.

    und es geht bestimmt noch einfacher zum Schreiben :-)

    Gruß
    Manfred


    Danke für alle Ideen. Damit muss ich mich aber erst mal
    auseinandersetzen. Bei Bedarf melde ich mich dann wieder.

    Guten Rutsch

    Klaus

    Hallo Klaus!

    Wenn du die Regexp-Manpage von Python liest,

    https://docs.python.org/3/library/re.html

    findest du da den Unterschied zwischen "greedy"=sucht einen möglichst
    großen Treffer und "non-greedy"=sucht den minimalen Treffer.

    Vielleicht ist es das, dass du nur <Start>.*?<Stop> (non-greedy "all characters") im DOTALL-Modus (DOT matcht auch Newline) durch einen
    Leerstring ersetzen musst?


    Irgendwas wie

    import re

    with open(myfile) as f:

        data = f.read()

        newdata = re.sub("<Startword>.*?<Stopword>", "", data, flags=re.DOTALL)

        with open(outfile, "w") as f2:

            f2.write(newdata)

    irgendwie so, ungetestet.

    Ich denke, wenn dir Python nicht liegt, werden die regular expressions
    in deinem Lieblingssystem vielleicht Äquivalente zu DOTALL und non-greed
    match haben.


    Hope that helps

    Hartmut

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)