Löschen von Zeilen aus einer Datei mit Sed
Dieser Unix- Befehl wird für die Befehlszeilenverarbeitung verwendet . Mit diesem Dienstprogramm können Ausdrücke aus einer Datei gelöscht werden, die durch ein bestimmtes Trennzeichen (z. B. ein Komma, ein Tabulatorzeichen oder ein Leerzeichen), eine Zeilennummer oder die Suche nach einer Zeichenfolge, einem Ausdruck oder der Adresse einer Zeile in gekennzeichnet sind die Syntax von Sed.
Sed: Löschen Sie eine oder mehrere Zeilen aus einer Datei
So entfernen Sie eine oder mehrere Zeilen aus einer Datei.Syntax
sed '[/] d'sed '{[/] [, ] [/] d'
/.../ = Trennzeichen
n = Zeilennummer
string = String in der Zeile gefunden
Regex = regulärer Ausdruck, der dem gesuchten Muster entspricht
addr = Adresse einer Zeile (Nummer oder Muster)
d = löschen
Beispiele für Sed
Im Folgenden finden Sie einige Beispiele für die Verwendung der obigen Syntax.Verwenden Sie den folgenden Code, um die dritte Zeile zu entfernen:
sed '3d' fileName.txt
Entfernen Sie die Zeile mit der Zeichenfolge "awk" mit:
sed '/ awk / d' filename.txt
Sie können die letzte Zeile entfernen, indem Sie Folgendes eingeben:
sed '$ d' filename.txt
Oder entfernen Sie alle Leerzeilen durch:
sed '/ ^ $ / d' filename.txtsed '/./!d' filename.txt
Entfernen Sie die Zeilenübereinstimmung durch einen regulären Ausdruck (indem Sie ein Zeichen mit mindestens einer Ziffer am Ende der Zeile entfernen):
sed '/ [0-9 /] [0-9] * $ / d' filename.txt
Entfernen Sie das Intervall zwischen den Zeilen 7 und 9:
sed '7, 9d' filename.txt
Dieselbe Operation wie oben, aber Ersetzen der Adresse durch Parameter:
sed '/ -Start /, / - End / d' filename.txt
Die obigen Beispiele werden nur bei der Anzeige der Datei geändert (stdout1 = screen).
Verwenden Sie für dauerhafte Änderungen an den alten Versionen (<4) eine temporäre Datei für GNU sed mit dem Zusatz "-i [Suffix]" :
sed -i ".bak" '3d' filename.txt