Zeilen in einem festgelegten Bereich mit sed löschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Maverick
Beiträge: 18
Registriert: 25.02.2003 20:00:50
Wohnort: Viersen

Zeilen in einem festgelegten Bereich mit sed löschen

Beitrag von Maverick » 07.05.2005 20:23:52

Ich möchte sed gerne dazu verwenden in einem festgelegten Bereich (Zeile x-y) alle Zeilen zu löschen die einem vorgegebenen Kriterium (regex) entsprechen.

Beispiel

Lösche aus der Datei beispiel.txt alle Zeilen die das Wort "Suchtext" enthalten aber nur in den Zeilen 5-10.

Rausfinden konnte ich lediglich das man einen festgelegten Bereich löschen kann:

sed -e '5-10d' beispiel.txt | more

und wie man all jene Zeilen löscht die einen bestimmten Text beinhalten:

sed -e '/suchtext./d' beispiel.txt | more

Nachdem ich trotz intensiver Suche bisher keine Möglichkeit gefunden habe, frage ich mal hier im Forum. Falls die Lösung mit der Option "s" stattdessen zu machen ist wäre mir das auch recht.

Vielen Dank für jegliche Vorschläge.

Gruß

maverick

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 08.05.2005 16:18:09

Hi,

eine sed Option habe ich so auch nicht auf der Pfanne, aber du koenntest z. B. mittels "head" und "tail" ja nur die Zeilen 5-10 durch den sed pipen. Die entsprechenden Optionen stehen in den Manuals.
Alternativ stehen dir natuerlich die ueblichen Verdaechtigen awk, perl, ... zur Verfuegung.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 08.05.2005 17:44:51

Code: Alles auswählen

sed -e '5,10{/suchtext/d}' DATEI

Maverick
Beiträge: 18
Registriert: 25.02.2003 20:00:50
Wohnort: Viersen

Beitrag von Maverick » 08.05.2005 18:16:18

Vielen Dank Joghurt, genau diese Möglichkeit habe ich gesucht.

Gruß
maverick

Antworten