2017-01-13 2 views
0

Ich versuche, eine eindeutige Zeichenfolge in einer Datei mit sed zu löschen.Löschen von Zeichenfolge mit sed

test.txt enthält

123 
456 
789 
111 
1 
000136 

Zum Beispiel habe ich nur die 1 Text in der Datei entfernen müssen. Ich versuchte, den Befehl zu verwenden

sed '/1/d' test.txt 

der Ausgang

456 
789 

sein Wie kann ich nur löschen 1 mit sed? Gibt es einen Weg, es zu tun?

Vielen Dank!

+0

Bitte nehmen Sie sich einen Blick auf: [? Was soll ich tun, wenn jemand meine Frage beantwortet] (http: // Stackoverflow. com/help/jemand-Antworten) – Cyrus

Antwort

1

Das Problem mit Ihrem Beispiel ist, dass das in sed verwendete Muster mit allen Zeilen übereinstimmt, die ein 1 Zeichen enthalten.

Passen Sie das Muster statt: sed '/^1$/d' test.txt

Diese nur Linien entsprechen, werden ein einzelnes Zeichen, nämlich 1 enthält.

Dies entspricht nicht Zeilen, die zusätzliche Leerzeichen enthalten!

Lesen Sie mehr über reguläre Ausdrücke (und Sonderzeichen ^ und $) an: https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html

+0

@ user2632704 Fühlen Sie sich frei, meine Antwort zu akzeptieren – setempler

+0

Hallo. Vielen Dank! Ich habs – user2632704

Verwandte Themen