[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Zeilen zwischen 2 Wörtern löschen





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


Reply to: