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
Zeilen in einem festgelegten Bereich mit sed löschen
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.
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"
"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"
Code: Alles auswählen
sed -e '5,10{/suchtext/d}' DATEI