Fouillez votre code avec grep

Aujourd’hui j’ai du explorer le code source php d’un site web écrit par quelqu’un d’autre. Lorsque l’on veut faire des modifications, il est vite important d’identifier où est utilisé telle ou telle variable, fonction,…

C’est donc via une petite commande bash en utilisant grep que je m’aide.

$ grep -n -r ‘$address_db’ *

pour chercher dans tous les fichiers récursivement dans le dossier courant la chaine $address_db. Le -n sert à afficher les numéros de ligne pour identifier plus rapidement.

Seulement, pour une raison que je ne m’explique pas bien, avec certaines chaines (style celle plus haut fonctionne mais ‘$(‘ non), pour tout ce qui n’est pas fichier de texte, vous aurez une erreur du style « Binary file [nom du fichier] matches » ou « Fichier binaire… ». Pour filtre cela vous pouvez utiliser un pipe.

$ grep -n -r ‘$(‘ * | grep -v ^Binary

Si vous avez trop de résultat pour votre petit terminal, vous pouvez toujours rediriger le flux vers un fichier texte ou afficher progressivement avec less

$ grep -n -r ‘a’ * > ~/log-grep.txt
$ grep -n -r ‘a’ * | less

Si vous connaissez d’autre moyen de faire la même chose, n’hésitez pas à partager ;)

Vus : 547
Publié par mart-e : 65