GNU/Linux >> Tutoriels Linux >  >> Linux

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

Vous pouvez utiliser ack. C'est comme grep pour le code source. Vous pouvez analyser tout votre système de fichiers avec.

Faites simplement :

ack 'text-to-find-here'

Dans votre répertoire racine.

Vous pouvez également utiliser des expressions régulières, spécifier le type de fichier, etc.

MISE À JOUR

Je viens de découvrir The Silver Searcher, qui est comme ack mais 3 à 5 fois plus rapide que lui et ignore même les modèles d'un .gitignore fichier.


Procédez comme suit :

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r ou -R est récursif,
  • -n est le numéro de ligne, et
  • -w correspond à correspondre au mot entier.
  • -l (L minuscule) peut être ajouté pour donner simplement le nom de fichier des fichiers correspondants.
  • -e est le modèle utilisé lors de la recherche

Parallèlement à cela, --exclude , --include , --exclude-dir flags pourraient être utilisés pour une recherche efficace :

  • Cela ne recherchera que dans les fichiers qui ont des extensions .c ou .h :
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • Cela exclura la recherche de tous les fichiers se terminant par l'extension .o :
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • Pour les répertoires, il est possible d'exclure un ou plusieurs répertoires en utilisant le --exclude-dir paramètre. Par exemple, cela exclura les répertoires dir1/, dir2/ et tous ceux correspondant à *.dst/ :
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

Cela fonctionne très bien pour moi, pour atteindre presque le même objectif que le vôtre.

Pour plus d'options, voir man grep .


Utilisez grep -ilR :

grep -Ril "text-to-find-here" /
  • i signifie ignorer la casse (facultatif dans votre cas).
  • R signifie récursif.
  • l signifie "afficher le nom du fichier, pas le résultat lui-même".
  • / signifie commencer à la racine de votre machine.

Linux
  1. Comment trouver tous les fichiers qui ne contiennent pas de chaîne de texte ?

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

  3. Comment compresser tous les fichiers ou des fichiers spécifiques sous Linux

  4. Commande Linux :Comment "trouver" uniquement des fichiers texte ?

  5. Comment trouver tous les fichiers se terminant par .rb avec Linux ?

Comment trouver des fichiers sous Linux

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

Commande Grep sous Linux (Rechercher du texte dans des fichiers)

Comment rechercher et supprimer des fichiers contenant un texte spécifique dans leurs noms sous Linux

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

Rechercher du texte dans des fichiers sous Linux à l'aide de grep