04 01 | 2013

Re: Recherche d'une chaîne dans une arborescence

Written by Tanguy

Classified in : Homepage, Libre, Réponses

Icône représentant une loupe sur une feuille de papier écrite

En réponse à un article de Thierry Bazzanella

Pour rechercher une chaîne de caractère dans une arborescence entière de fichiers, avec GNU grep :

$ grep -R "chaîne" répertoire

Les autres versions de grep, comme celles des différents BSD, disposent d'une option similaire. À combiner avec les différentes options de grep, par exemple pour rechercher une chaîne simple plutôt qu'une expression régulière, sans tenir compte de la casse, et n'afficher que les noms des fichiers contenant la chaîne et non les lignes correspondantes :

$ grep -RFl "chaîne" répertoire

7 comments

friday 04 january 2013 à 14:56 Nono said : #1

Je me suis dit exactement la même chose en voyant son article.
J'ai eu peur de "troller"/repondre en commentaire, je vois que d'autre n'hesite pas par article interposé :p

friday 04 january 2013 à 15:19 Tanguy said : #2

@Nono : Ça me semble un usage approprié des commentaires, c'est d'ailleurs ce que j'ai fait, sauf que l'auteur n'a pas validé mon commentaire, donc… j'ai répondu par un nouvel article, ce qui est nettement plus trollifère mais je n'avais pas d'autre option. :-)

friday 04 january 2013 à 16:17 Nono said : #3

Très juste :) Tu as bien fait :)
Par contre, avec le -l, est-il toujours utile le -F ?

Perso, j'ai dans mon .bashrc un alias sur grep : alias grep='grep -n --color'

Ce qui rend vraiment moins moche le -R :)

friday 04 january 2013 à 16:23 Tanguy said : #4

@Nono : -F c'est pour rechercher des chaînes fixes, c'est indépendant de -l qui permet de n'afficher que les noms des fichiers, sans la ligne correspondante. Sinon, tu seras peut-être intéressé par les variables d'environnement GREP_OPTIONS.

friday 04 january 2013 à 16:56 Nono said : #5

A mon niveau, c'est juste une copie d'un .bashrc sur un autre server, donc, passer par GREP_OPTIONS ou un alias (meme si je concois que c'est dégeulasse comme methode), fonctionne, et me satisfait :)

Mais, pour les eventuelles lecteurs, c'est bien de ne pas laisser uniquement mon petit sparadrap sauce maison :D)

friday 04 january 2013 à 18:23 Bruno said : #6

Je pense que l'alias grep='grep --color=auto' est présent dans le bashrc par défaut de pas mal de distributions
Sinon ceci marche aussi :

rgrep "chaîne" dossier

et egrep équivalent à grep -E
et fgrep équivalent à grep -F

sunday 06 january 2013 à 13:34 thierry said : #7

Salut Tanguy. Désolé toutes et tous de ne pas avoir approuver vos commentaires plutôt. Ma disponibilité étant très limitée. Obligé d'approuver les commentaires manuellement, on me demande en mariage, des femmes russes veulent me rencontrer, des sociétés commerciales font leur pub, etc. Un véritable fléau.

Write a comment

What is the third letter of the word amabn? : 

Archives