Trouver tous les fichiers contenant du texte spécifique

Trouver tous les fichiers contenant du texte spécifique

Vous savez probablement déjà comment utiliser le grep Commande pour rechercher une chaîne de texte dans un fichier sur Linux. Mais que se passe-t-il si vous souhaitez récupérer une liste de fichiers contenant la chaîne de texte? Ceci est une tâche la mieux adaptée à grep ou la commande find. Nous vous montrerons comment le faire dans ce guide.

Dans ce tutoriel, vous apprendrez:

  • Comment utiliser grep et trouver Commandes pour trouver tous les fichiers contenant du texte spécifique
Trouver tous les fichiers contenant du texte spécifique Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Toute distribution Linux
Logiciel N / A
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Recherchez un texte spécifique avec la commande grep



Sans aucun doute, grep est la meilleure commande pour rechercher un fichier (ou des fichiers) pour un texte spécifique. Par défaut, il renvoie toutes les lignes d'un fichier contenant une certaine chaîne. Ce comportement peut être modifié avec le -l option, qui instruit grep Pour retourner uniquement les noms de fichiers qui contiennent le texte spécifié.

Voyons maintenant ça en action. Utilisez la syntaxe suivante dans le terminal et spécifiez tous les fichiers que vous souhaitez rechercher en ajoutant leur chemin et leur nom à la fin de la commande.

$ grep -l Exemple de document1.Txt Document2.SMS 
Utilisation de Grep pour trouver quels fichiers contiennent le texte spécifié

La sortie de grep nous montre que notre «exemple» de chaîne de recherche n'existe que dans le document1.SMS déposer. N'oubliez pas non plus que les caractères génériques sont autorisés et peuvent aider à faire grep plus efficace:

$ grep -l Exemple *.SMS 

Mais soyons réalistes. Si vous ne recherchez que quelques fichiers, vous n'auriez probablement pas fini par lire ce guide. Très probablement, vous avez un répertoire (ou plusieurs répertoires) plein de fichiers que vous devez rechercher. Ce n'est pas un problème pour grep Tant que vous incluez le -r (récursif) option dans la commande.

$ grep -lr Exemple / chemin / vers / répertoire1 / *.txt / path / vers / répertoire2 

Ou, pour rechercher le répertoire actuel et toutes les sous-répertoires, omettez le chemin à la fin de la commande.

$ grep -lr Exemple 
Utilisation du grep pour rechercher de manière récursive

Envisagez également d'utiliser le -je Option, ce qui rend votre cas de recherche de recherche insensible. Pour en savoir plus sur le reste du grep Les fonctions de la commande en détail, consultez notre introduction à Grep Guide. La page Man contient également des informations utiles:

$ grep man 

Recherchez un texte spécifique avec la commande Find

Si vous préférez utiliser le trouver Commande, vous pouvez utiliser la syntaxe de commande suivante:

$ find / path / to / search -Type f -exec grep -l "Votre String-String"  \; 
Utilisation de la commande find pour rechercher des fichiers contenant la chaîne de texte

Encore une fois, ajouter -je au grep partie de la commande pour ignorer le cas. Le trouver et grep Les méthodes fonctionnent bien les deux. Utilisez celui que vous préférez.

Conclusion

Dans ce guide, nous avons vu comment trouver tous les fichiers contenant du texte spécifique dans Linux. Nous avons appris deux méthodes de ligne de commande pour accomplir la tâche, mais il y a encore plus.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Commandes Linux de base
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Comment trouver une chaîne ou un texte dans un fichier sur Linux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Installez Arch Linux dans VMware Workstation
  • Ubuntu 20.04 Guide
  • Choses à installer sur Ubuntu 22.04