Posez votre question Signaler

Linux : find & grep [Résolu]

2009 - Dernière réponse le 30 nov. 2010 à 19:09
Bonjour,
il faut a la question suivante en utilisant grep et find :
affichier les noms de fichiers qui contient le mot "premier" a partir de votre dossier "home"
j'aii essayé avec : find ~ -name * -print -exec grep "premier"
mais j'arrive que a afficher les lignes ... comment faire pour afficher le nom de fichier ?
Lire la suite 

Linux : find & grep »

14 réponses
Réponse
+2
moins plus
Bonjour,

celle-ci devrait le faire aussi :

find . -type f -name "*.php" -exec grep -il 'pattern' {} \;



ou bien celle-ci :

find . -name "*.php" -print0 | xargs -0 egrep pattern


^ ^
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour, je cherche à rechercher une chaine précise dans des fichiers php, sur mon serveur
J'ai tenté de nombreuses syntaxe, aucune ne donnant des résultats ..

find /home | grep -R -l 'expression?param='
find /home -name *.php -print -exec grep -H "expression?param=" {}\;

celle ci ne fonctionne que dans le repertoire local courant
grep -s -R -H 'expression?param=' *.php
esperlu - 31 mai 2010 à 19:26
Bonsoir,

Pourquoi pas simplement:
grep -rn 'expression?param=' /home/*.php

Utilise le développement de fichier (glob) natif de grep qui parcourra le répertoire /home/ récursivement (-r). L'option -H est superflue (valeur par défaut pour la recherche sur plusieurs fichiers).
jipicy - 1 juin 2010 à 10:53
/home/*.php
Là ça ne fait que parser les fichiers *.php du répertoire (/home où je doute qu'il y en ait ;-) ) mais ça ne descend pas dans l'arborescence ;-(

grep -rn --include='*.php' 'expression?param=' /home

Devrait le faire ;-))
jeffbc - 1 juin 2010 à 12:07
Merci cette dernière fonctionne à merveille =)
Ajouter un commentaire
Réponse
+0
moins plus
-n, --line-number print line number with output lines
-R, -r, --recursive equivalent to --directories=recurse

Un petit exemple :

Je recherche le mot alonso dans le répertoire /home/tetsumaki/allons-y

alonso ce trouve sur la ligne 2 du fichier /home/tetsumaki/allons-y/test.h
sur la ligne 5 du fichier /home/tetsumaki/allons-y/test/test2.h

Recherche dans le répertoire :

[tetsumaki@tetsu-arch ~]$ grep -rn "alonso" "/home/tetsumaki/allons-y/" 
/home/tetsumaki/allons-y/test.h:2:alonso 
/home/tetsumaki/allons-y/test/test2.h:5:alonso


Ou si je me trouve dans le répertoire dans lequel je veux rechercher :

[tetsumaki@tetsu-arch allons-y]$ cd ~/allons-y/ 
[tetsumaki@tetsu-arch allons-y]$ grep -rn "alonso" . 
./test.h:2:alonso 
./test/test2.h:5:alonso


Si je veux rechercher que sur les fichiers ayant l'extension ".h" :

[tetsumaki@tetsu-arch allons-y]$ grep -rn --include="*.h" "alonso" "/home/tetsumaki/allons-y/" 
/home/tetsumaki/allons-y/test.h:2:alonso 
/home/tetsumaki/allons-y/test/test2.h:5:alonso
Ajouter un commentaire
Réponse
+0
moins plus
find /chemin/vers/repertoire -type f -exec grep -il "lemot" {} \;

cette commande affiche la liste des fichiers qui contiennent le mot "lemot" dans le repertoire "repertoire" et aussi dans ses sous-repertoires
Ajouter un commentaire
Réponse
-1
moins plus
Salut,

man grep
       -H, --with-filename
              Afficher le nom du fichier pour chaque concordance.

Ajouter un commentaire
Réponse
-1
moins plus
find /home/ | grep premier
lami20j - 1 janv. 2009 à 16:31
Salut,

Ta commande cherche tous les répertoires/fichiers dans /home qui contient dans leur nom le mot premier

Il demande
affichier les noms de fichiers qui contient le mot "premier" a partir de votre dossier "home"
Qui pour moi veut dire de trouver tous les fichiers qui ont dans leur contenu le mot "premier"

Si ta commande lui convient alors il a mal posé la question ;-)
Ajouter un commentaire
Réponse
-1
moins plus
ça ne marche, mais que sur le repertoire "home", pas récursivement
Ajouter un commentaire
Réponse
-1
moins plus
Salut,

grep -l "premier" /home/*

en utilisant l'option -l
Ajouter un commentaire
Réponse
-2
moins plus
en fait l'option -l ( L miniscule) fait ça:
grep -R -l <mot_recherché> <répertoire>
l'option -R permet de rechercher récursivement
Ajouter un commentaire
Ce document intitulé « linux : find & grep » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook