Wenn Sie alle Zeilen löschen, die nur Hello(number) :
Verwendung unten enthalten :
Probeneingang in file
Hell
Hello1 :
No hello stuff here
Unjulating stuff
Hello2 :
Some sentence
Hello99 :
Script
sed -Ei '/^Hello[[:digit:]]+ :$/d' file
Beispielausgabe im modifizierten file
Hell
No hello stuff here
Unjulating stuff
Some sentence
Was
- Mit der
^
im Muster über geschieht, werden wir für den Anfang überprüfen der Linie. - Wir überprüfen das Muster
Hello(number) :
mit Hello[[:digit:]]+ :$
. Beachten Sie, dass ich -E verwendet habe, um erweiterte Ausdrücke für sed extended zu aktivieren, so dass ich das + ie (\+
) nicht entgehen muss. Hier [[:digit:]]
ist eine Klasse, die enthält alle Dezimalstellen und +
wird verwendet, um zu überprüfen, ob das Muster vor es mindestens einmal übereinstimmt. - das Ende der Linie prüfen
$
- Für ein angepasstes Muster verwenden, es löschen Linie der
d
Option - ich auch die sed
inplace edit
Option verwendet habe -i
, damit die Änderungen in die Datei direkt gespeichert werden.
Wenn Sie die eine Linie der beginnt mit Hello(number) :
dann benutzen Sie das folgende Skript
sed -Ei '/^Hello[[:digit:]]+ :/d' file
Sie haben vielleicht bemerkt ändern möchten, dass ich nur die $
entfernt, so dass unsere Muster jede Zeile übereinstimmt, die mit beginnt Hello(number) :
Hoffe, das hilft.
Haben Sie versucht, 'sed -i '/^Hallo [0-9] [0-9] * []:/d' Dateiname'? Wenn hinter dem '' '' noch zusätzlicher Text steht (oder Sie die gesamte Zeile löschen wollen), können Sie 'sed -i '/^Hallo [0-9] [0-9] * []:. * $ Verwenden/d 'filename' –