Ich möchte wissen, welche Dateien die Zeichenfolge haben $Id$
.
grep \$Id\$ my_dir/mylist_of_files
gibt 0 Vorkommen zurück.
Ich entdeckte, dass ich verwenden muss
grep \$Id$ my_dir/mylist_of_files
Dann sehe ich, dass das $Id
in der Ausgabe farbig ist, dh es wurde abgeglichen.
Wie könnte ich den zweiten $
abgleichen und warum funktioniert das nicht \$Id\$
?
Es ist egal, ob das zweite $
Zeichen das letzte ist oder nicht.
Ich benutze grep
2.9.
Vor dem Posten meiner Frage habe ich Google verwendet ...
Ich habe eine Antwort gefunden
Geben Sie Folgendes ein, um in der Datei test2 nach einem $ (Dollarzeichen) zu suchen:
grep \\ $ test2
Die Zeichen \\ (doppelter Backslash) sind erforderlich, um die Shell zu zwingen, dem Befehl grep einen \ $ (einfacher Backslash, Dollarzeichen) zu übergeben. Das Zeichen \ (einfacher Backslash) weist den Befehl grep an, das folgende Zeichen (in diesem Beispiel das $) als Literalzeichen und nicht als Ausdruckszeichen zu behandeln. Verwenden Sie den Befehl fgrep, um die Notwendigkeit zu vermeiden, Escapezeichen wie den umgekehrten Schrägstrich zu verwenden.
aber ich verstehe nicht warum grep \$Id
funktioniert und warum grep \\$Id\\$
nicht.
Ich bin etwas durcheinander...
quelle
grep -F '$Id$'
.grep '$Id\$' ...
undgrep \$Id\\$ ...
Arbeit$
mit einem voran$
:grep '$$Id\$$'
. stackoverflow.com/a/2382810/2097284So suchen Sie
$Id$
in einer Datei: Sie können Folgendes verwenden:grep '\$id*' filename
quelle
$id
, also$idea
zum Beispiel auch, nicht nur$id$
.