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