Ich möchte nach Quelldateien (* .c, * .cpp, * .h) suchen, die in Linux / MinGW / Cygwin und rekursiv in allen Unterverzeichnissen enthalten sind.
Meine Grundidee ist find
und grep
. Es ist jedoch nicht einfach, einen regulären Ausdruck zu erstellen, der den angegebenen Dateinamen überprüft: * .c, * .cpp oder * .h. Könntest du mir helfen?
$
der Befehl am Ende?foo.cpp.old
beispielsweise einen Namen haben).Ich würde ... benutzen:
quelle
-E
nichts finden. Möglicherweise müssen Sie ein -E (wie erweitert) hinzufügen, um es portabler zu machen, genau wiefind -E . -regex '.*\.(c|h|cpp)' -print
. ;-)Schnell und schmutzig und vermeidet Verzeichnisnamen:
quelle
*.cpp
Dateien gefunden. 2. Es werden*.|
Dateien gefunden. 3. Der Glob wird erweitert, wenn im aktuellen Verzeichnis übereinstimmende Dateien vorhanden sind. Zitieren verhindert das.Sie können einen etwas einfacheren regulären Ausdruck verwenden:
quelle
Ich benutze einen Mac Pro, der auch in Bash funktioniert. Aber jedes Mal, wenn ich in die Befehlszeile tippe:
es heißt illegale Option. Also habe ich es einfach so vereinfacht:
und fand es hat wirklich funktioniert!
quelle