Recherche sur le site Web

Trouver tous les fichiers contenant du texte spécifique


Vous savez probablement déjà comment utiliser la commande grep 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? Il s'agit d'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 des commandes pour trouver tous les fichiers contenant du texte spécifique

Trouver tous les fichiers contenant du texte spécifique

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 l'option -l , qui instruit grep pour renvoyer uniquement les noms de fichiers qui contiennent le texte spécifié.

Voyons maintenant cela 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 example document1.txt document2.txt

Utilisation de Grep pour trouver quels fichiers contiennent le texte spécifié

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


grep -l example *.txt

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 l'option -r (récursive) dans la commande.


grep -lr example /path/to/directory1/*.txt /path/to/directory2

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


grep -lr example

Utilisation du grep pour rechercher de manière récursive

Envisagez également d'utiliser l'option -i , ce qui rend votre cas de recherche de recherche insensible. Pour en savoir plus sur le reste des fonctions de la commande grep en détail, consultez notre guide d'introduction à Grep. 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 la commande Rechercher , vous pouvez utiliser la syntaxe de commande suivante:


find /path/to/search -type f -exec grep -l "your-search-string" {} \;

Utilisation de la commande find pour rechercher des fichiers contenant la chaîne de texte

Encore une fois, ajoutez -i à la partie grep de la commande pour ignorer le cas. Les méthodes recherchent et grep fonctionnent bien. 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.

Articles connexes: