Me gustaría encontrar archivos fuente (* .c, * .cpp, * .h) que contengan en Linux / MinGW / Cygwin, y de forma recursiva en todos los subdirectorios.
Mi idea básica es usar find
y grep
. Sin embargo, construir una expresión regular que pueda verificar el nombre de archivo dado es * .c, * .cpp o * .h no es fácil. ¿Podrías ayudarme?
$
al final del comando?foo.cpp.old
por ejemplo).Yo usaría:
fuente
-E
no puede encontrar nada. Es posible que necesite agregar un -E (como extendido) para hacerlo más portátil, al igual quefind -E . -regex '.*\.(c|h|cpp)' -print
. ;-)Rápido y sucio, y evita los nombres de directorio:
fuente
*.cpp
archivos. 2. Encontrará*.|
archivos. 3. El globo se expandirá si hay archivos coincidentes en el directorio actual. Citar lo impide.Puedes usar una expresión regular un poco más simple:
fuente
Yo uso un Mac Pro que también funciona en bash. Pero cada vez que escribo en la línea de comando:
Dice opción ilegal. Entonces lo simplifiqué como:
y encontré que realmente funcionó!
fuente