ack "#define"
wird in Unterverzeichnisse rekursiv und findet Dateien, die #define enthalten. Aber ich wollte die Suche auf * .h-Dateien beschränken, also habe ich es versucht
ack "#define" *.h
und es kehrt nicht mehr zurück. Die einzigen Ergebnisse stammen aus Dateien im Arbeitsverzeichnis.
Ausführung:
ack 1.96 Läuft unter Perl 5.14.2 unter / usr / bin / perl
Antworten:
Der Platzhalter
*.h
wird von Ihrer Shell erweitert , und ack empfängt nur einzelne Dateien als Argumente - es gibt keine Möglichkeit, darauf zurückzugreifen.Um dies zu vermeiden, geben Sie den Platzhalter innerhalb einfache oder doppelte Anführungszeichen, aber ack wird wahrscheinlich nicht erkennen es als Platzhalter:
ack "#define" "*.h"
.Eine bessere Option besteht darin
--hh
, nur Header-Dateien einzuschließen (siehe--help type
) oder-G '\.h$'
nur Dateien einzuschließen, die dem angegebenen Perl-Regex entsprechen.quelle