En ce moment j'utilise deux commandes, je suis sûr qu'il doit y avoir une meilleure façon ...
wim@wim-acer:~/ffmpeg$ find . -name "*.h" -print0 | xargs -0 grep -i invalid\ preset
wim@wim-acer:~/ffmpeg$ find . -name "*.c" -print0 | xargs -0 grep -i invalid\ preset
-name '*.[ch]'
marche?Réponses:
ack (ou, sur Debian / Ubuntu, ack-grep) ignorera les fichiers non sources comme le contrôle de version ou les binaires. Très utile.
pour rechercher uniquement les fichiers .c et .h, comme ci-dessus:
le
--cc
(le formulaire le plus long est--type cc
) ne regarde que les fichiers .c .h & .xs. La liste complète des types de fichiers est visible avecack-grep --help type
. La plupart du temps, vous n'aurez pas particulièrement besoin de--type
, car il n'aura généralement que les fichiers à rechercher, puis les fichiers que vous ne verrez pas par défaut, comme les fichiers binaires, les sauvegardes et les fichiers de contrôle de version.la source
Le
grep
programme lui-même peut effectuer une recherche récursive et accepte également une option pour rechercher uniquement certains fichiers. Ce qui suit est équivalent à vos deuxfind
commandes.la source
La commande find peut appeler grep elle-même.
et leurs variantes.
la source
Je peux ajouter quelque chose comme ça à votre
~/.bashrc
la source