Comment retrouver tous les fichiers contenant une chaîne de caractères sur Linux ?

Pour rechercher un document en fonction de son contenu sous Linux, une commande existe. Voici comment faire.

Si vous voulez rechercher un document en fonction de son contenu sous Linux, il faut utiliser la commande grep. Cette commande utilise une expression régulière afin de trouver les fichiers dont le contenu correspond au résultat.

Grâce aux paramètres possibles pour cette commande, on peut modifier la recherche pour l'affiner et trouver plus facilement les résultats. Exemple :

grep -rnw 'dossier de recherche' -e 'expression à rechercher'

Dans cette commande, l'option -r indique une recherche récursive, qui cherche dans tous les sous-dossiers jusqu'à avoir tout examiné. L'option -n indique que la commande doit retourner le numéro de la ligne correspondant à la recherche, et l'option -w signifie que la ligne entière doit correspondre à l'expression recherchée. Si vous ajoutez l'option -l, la commande grep vous retourne alors le nom du fichier dans lequel figure la ligne trouvée. L'option -i peut également vous aider dans votre recherche, car elle indique à la commande grep d'ignorer les minuscules et majuscules dans l'expression à rechercher.

Si vous savez dans quel type de fichier chercher, l'option --include permet de n'inclure que le ou les type(s) de fichiers dans l'expression qui suit. Exemple :

grep --include=*.php -rnw 'dossier de recherche' -e 'expression à rechercher'
#Recherche uniquement dans les fichiers .php

À l'inverse, l'option --exclude exclut des types de fichiers de la recherche. Il est également possible d'inclure ou d'exclure des dossiers avec les options --include-dir et --exclude-dir.

Vous pouvez consulter le manuel de la commande (man grep) afin de connaître toutes les autres options de recherche.

Il existe aussi des outils en ligne de commande afin de vous aider dans des cas particuliers. Si vous êtes un programmeur, l'outil ack est parfait pour vous. Il s'agit d'un outil conçu pour les développeurs qui souhaitent rechercher des lignes dans le code source. La commande ack expression à rechercher effectuera directement une recherche récursive à partir du répertoire dans lequel la commande est exécutée. L'outil The Silver Searcher, basé sur ack, est également un autre outil de recherche de code.