Post

Find_Grep_Recherche

Find_Grep_Recherche

Find_Grep_Recherche

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.

1
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 :

1
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

1
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

1
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)
Cet article est sous licence CC BY 4.0 par l'auteur.