Warum stimmt grep mit allen Zeilen für das Muster "\ '" überein?

8

In dieser SO-Frage gibt es etwas, das ich nicht erklären kann:

%Vor%

stimmt mit allen Zeilen in der angegebenen Datei überein. Hat \' eine besondere Bedeutung für grep?

    
perreal 28.07.2012, 08:39
quelle

4 Antworten

6

grep regex GNU-Erweiterung : '\ '' entspricht dem Ende der gesamten Eingabe

    
Richard Sitze 28.07.2012, 09:21
quelle
3

Ich kannte diese Funktion der regulären Ausdrücke nicht. Aber es ist bei regulary-expressions.info als Ende der Zeichenfolge aufgelistet Anker.

Es existiert nicht in allen Regex-Implementierungen nur in GNU Basic und Extended Regular Expressions, siehe Kompatibilitätstabelle für weitere Informationen.

    
KARASZI István 28.07.2012 09:23
quelle
3

Das ist ein wirklich seltsames Verhalten von grep , ich weiß nicht, wie ich es erklären soll, aber ich muss beachten, dass \' keinem Zeichen entspricht. Es sieht so aus, als hätte es die gleiche Bedeutung wie $ :

%Vor%

Update 1

Wie es in Ссылка ( Danke an Richard Sitze für den Link) es hat wirklich die gleiche Bedeutung wie $ . Aber inzwischen habe ich einen Unterschied zwischen \' und $ festgestellt:

%Vor%

Sie können \' so oft angeben wie Sie möchten, aber nicht so für $ . Es darf nur ein $ geben.

Eine weitere wichtige Bemerkung. Das Handbuch sagt:

%Vor%

Aber genau genommen ist das nicht die Wahrheit, denn \' stimmt nicht nur mit dem Ende der gesamten Eingabe überein, sondern auch mit dem Ende jeder einzelnen Zeile:

%Vor%

Genau wie $ funktioniert.

    
Igor Chubin 28.07.2012 09:02
quelle
-2

\ ist ein Escape-Zeichen. Dies bedeutet, dass das 'als Text betrachtet werden sollte und nicht als Steuerzeichen.

    
het.oosten 28.07.2012 08:45
quelle

Tags und Links