Ich habe eine Datei der folgenden Form:
%Vor%In jeder Zeile, die die Zeichenfolge "-MIB" enthält, möchte ich den folgenden Text bis zum Ende der Zeile löschen.
Der folgende Befehl scheint wie vorgesehen zu funktionieren:
%Vor%Mein Problem ist, dass es auch die Zeilen löscht, wo mein Muster nicht gefunden wurde. Hier würde die Zeile "SEHR INTERESSANTES TEXT" gelöscht. Ich bin mit sed nicht wirklich vertraut. Was mache ich falsch? Ist sed für diese Art der Behandlung geeignet?
sed
-n
unterdrückt den Standarddruck, der später aktiviert wird, wenn Sie die Option p
nach Ihrer sed
-Anweisung setzen.
In Ihrem obigen Beispiel sagen Sie, dass sed
das Drucken aller Zeilen unterdrückt und dann nur die Zeilen druckt, bei denen die Ersetzung erfolgreich durchgeführt wurde. Daher wird die Zeile, in der keine Substitution vorgenommen wird, nie gedruckt.
Sie müssen die -n
-Option und p
von Ihrem Befehl entfernen:
Tags und Links line sed string-matching