Je voudrais trouver des fichiers sources (* .c, * .cpp, * .h) qui contiennent dans Linux / MinGW / Cygwin, et récursivement dans tous les sous-répertoires.
Mon idée de base consiste à utiliser find
et grep
. Cependant, la construction d'une expression régulière qui peut vérifier le nom de fichier donné est soit * .c, * .cpp ou * .h n'est pas facile. Pourrais-tu m'aider?
$
à la fin de la commande?foo.cpp.old
par exemple).J'utiliserais:
la source
-E
ne trouve rien. vous pourriez avoir besoin d'ajouter un -E (comme étendu) pour le rendre plus portable, tout commefind -E . -regex '.*\.(c|h|cpp)' -print
. ;-)Rapide et sale, et évite les noms de répertoire:
la source
*.cpp
fichiers. 2. Il trouvera des*.|
fichiers. 3. Le glob se développera s'il y a des fichiers correspondants dans le répertoire courant. Citer empêche cela.Vous pouvez utiliser une expression rationnelle légèrement plus simple:
la source
J'utilise un mac pro qui fonctionne également en bash. Mais chaque fois que je tape dans la ligne de commande:
il dit option illégale. Je l'ai donc simplement simplifié comme suit:
et j'ai trouvé que ça fonctionnait vraiment!
la source