Ich suche in einem Verzeichnis nach einer bestimmten Zeichenfolge (um alle Instanzen zu sehen, in denen die Zeichenfolge vorhanden ist und in welchen Dateien). Ich möchte jedoch eine bestimmte Datei von der Suche ausschließen.
Hier ist was passiert-
$echo "searchstring" > ./old_folder/useless_file
$echo "searchstring" > ./new_folder/good_file
$grep -r --exclude="old_folder/useless_file" searchstring *
./old_folder/useless_file:searchstring
./new_folder/good_file:searchstring
Hier ist die Ausgabe, die ich will-
./new_folder/good_file:searchstring
--exclude="old_folder/useless_file"
einfach wechseln ,--exclude=useless_file
bekommen Sie das gleiche Problem? (Meine Lektüre der Manpage legt nahe, dass das Muster--exclude
nur der Basisname sein sollte, ohne den Pfad.)Antworten:
Die
--exclude
Option verwendet Globs, die mit Dateinamen abgeglichen werden, nicht mit Verzeichnissen oder vollständigen Pfaden:Sie könnten also Folgendes tun:
Oder um alle Dateien in diesem Verzeichnis auszuschließen:
quelle