effet loupe

Chercher une chaine dans les fichiers

Trouver tous les fichiers contenant une chaine

linux recherche fichier, rechercher dans un fichier linux, linux recherche chaine dans un fichier, linux texte fichiers

Date de publication : 2008-12-15

En utilisant find et grep, on peut facilement trouver tous les fichiers contenant un mot.
Par exemple avec la commande suivante je cherche dans tous les fichiers php du répertoire /data/projects/ qui contiennent la chaine "array_keys" :


pcr@home:~$ find /data/projects/ -iname "*.php" | xargs grep array_keys
/data/projects/classes/Listing.class.php: foreach (array_keys($contents[0]) as $k)

Résultats :
Le fichier Listing.class.php est le seul à contenir un appel à la fonction array_keys.

Explications :
On demande a find de chercher dans le répertoire /data/projects/ les fichiers qui se terminent par l'extension .php (-iname contrairement à -name fait une recherche insensible à la casse).

On redirige la liste des fichiers php grâce au pipe et xargs vers grep pour qu'il nous filtre les fichiers et les lignes contenant array_keys.

Image : Pam Cantú

 
 

b1n@sp1n