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ú