GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher dans des fichiers spécifiques correspondant à un modèle ?

Comment puis-je trouver un mot dans des fichiers spécifiques correspondant à un modèle. par exemple. recherche de version dans CMake* fichiers trouvés récursivement dans le répertoire courant.

Réponse acceptée :

Si vous voulez voir le nom du fichier et le numéro de ligne, POSIXly :

find . -name 'CMake*' -type f -exec grep -nF /dev/null version {} +

(vous ne voulez pas utiliser ; ici qui exécuterait un grep par dossier). C'est l'équivalent standard du GNUisme :

find . -name 'CMake*' -type f -print0 | xargs -r0 grep -nHF {} +

find (dans le premier), xargs (dans le second) passera autant d'arguments à grep que possible sans dépasser la limite du nombre d'arguments que vous pouvez passer à une commande. Lors de ce fractionnement, il peut arriver que pour la dernière exécution, un seul argument soit passé à grep auquel cas grep n'imprimerait pas le nom du fichier. C'est pourquoi vous avez besoin de /dev/null là (ou -H avec GNU grep ).

Avec -type f , nous ne considérons que les fichiers normaux (pas les périphériques, les liens symboliques, les canaux, les répertoires…).

Si vous voulez utiliser GNUisms, vous pouvez utiliser GNU grep possibilité de descendre une arborescence de répertoire :

 grep -rHnF --include='CMake*' version .

Vous ne voulez pas utiliser -R car cela provoque grep pour suivre les liens symboliques lors de la descente de l'arborescence des répertoires et lire à partir des périphériques, fifos, sockets…

Cette version est plus sûre et plus efficace, mais pas portable.


Linux
  1. Comment utiliser la commande Grep pour rechercher du texte dans des fichiers

  2. Comment trouver des fichiers sur Ubuntu ?

  3. Comment rechercher des fichiers par taille et extension ?

  4. Comment rechercher un texte spécifique à l'aide de GREP sous Linux

  5. Comment puis-je trouver tous les fichiers contenant du texte spécifique sous Linux ?

Comment trouver une chaîne ou un mot spécifique dans les fichiers et les répertoires

Comment exclure dans Grep

Comment effectuer une recherche de modèle dans les fichiers à l'aide de Grep

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment effectuer une recherche Grep sur tous les fichiers et dans tous les répertoires

Comment trouver des fichiers dans Debian