66 votes

Unix find : plusieurs types de fichiers

Je veux exécuter find -name avec plusieurs types de fichiers. Par exemple.

  find -name *.h,*.cpp

Est-ce possible?

19voto

Pierre Points 961

C'est ce que j'utilise

 find . \( -name "*.h" -o -name "*.cpp" \) -print

11voto

jham Points 145
find . -name "*.h" -or -name "*.cpp"

travaille pour moi.

9voto

Evan Points 1850

Vous pouvez également utiliser l'utilitaire -regex

find -E . -iregex ".*\.(js|jsx|html|htm)"

N'oubliez pas que l'expression régulière examine le chemin absolu complet :

Pour une explication de cette regex avec des cas de test, consultez : https://regex101.com/r/oY1vL2/1

-E (comme indicateur AVANT le chemin) active les expressions régulières étendues (modernes).

Ceci est pour BSD find (Mac OSX 10.10.5)

8voto

user4795194 Points 81
find . -name '*.h' -o -name '*.cc'`

fonctionne pour la recherche de fichiers.

 find . \( -name '*.h' -o -name '*.cc' \)`

fonctionne pour exécuter des commandes sur eux

 find . \( -name '*.h' -o -name '*.cc' \) -exec egrep "#include" {} \; -print | egrep "^\."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X