Afficher/cacher Sommaire
2017-06-05-Find_Grep_Recherche
Linux chercher les fichiers contenant un mot donné
Il est parfois utile de savoir comment trouver les fichiers contenant telle ou telle information.
Pour cela il suffit d’utiliser la puissante commande de recherche grep.
grep -r -i -l 'chaine' ./
Cette commande va chercher la chaine de caractères « chaine », à remplacer par le mot que vous cherchez bien sûr.
-
-r : indique la récursivité, on va chercher dans tous les fichiers du répertoire courant indiqué par ./ si on veut rechercher dans un autre répertoire on remplace ./ par /nomdurépertoire
-
-i : insensible à la casse (minuscule/majuscule) de la chaine
-
-l : donne uniquement une liste de fichiers dans le résultat, sinon affiche en plus toute la ligne contenant la chaine recherchée.
On peut aussi écrire la commande ainsi c’est la même chose :
grep -ril "chaine" ./
Si on veut que les résultats de recherche soient mis dans un fichier on ajoute à la fin de la commande le traditionnel > /tmp/resultat.log
Mais attention à ce que ce fichier ne soit pas dans le chemin de recherche (et si on travaille sur une recherche depuis la racine sans l’option -l), on peut néanmoins l’exclure de la recherche
grep -r -i 'chaine' --exclude=resultat.log --exclude-dir=/proc --exclude-dir=/sys --exclude-dir=/dev / > /tmp/resultat.log
find+grep ,les fichiers sont dans une arborescence
find . -type f -exec grep montexte {} \;
Explications :
- find . => rechercher à partir du répertoire courant
- -type f => on cherche un fichier
- -exec => on execute une commande à chaque fichier trouvé
- grep montexte {} => on recherche “montexte” dans les fichiers ( {} remplace le nom des fichiers trouvés).
- \; => fin de l’option exec ( \ permet d’ajouter à la suite d’autres commandes)