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

Re: Zeilen zwischen 2 Wörtern löschen





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



Reply to: