Bonjour,
Je cherche une commande bash bien pratique qui permet de faire une recherche de motifs dans plusieurs fichiers. Exemple : J'ai une application php (PHPWebGallery... - un peu de pub au passage-), sur laquelle je travaille. Je cherche parmi tout les fichiers ".php', l'endroit ou est défini la variable $page.
Solution 1 :
$ grep "$page" *.php
Mais cette solution ne me convient pas tellement car il me semble qu'il y en a d'autres. (dont une qui me convenait)
# pourtant c'est la plus efficace
Posté par NeoX . Évalué à 1.
grep "$page" *.php
pour chercher un motif dans un nombre indefini de fichier.
# Exhaustivité...
Posté par LaBienPensanceMaTuer . Évalué à 3.
Pour être sur d'être exhaustif, je ferai un find . -iname "*.php" | xargs grep "$page".
Au delà de ça, grep est LA commande unix pour rechercher un pattern dans des fichiers donc je pense que tu trouveras difficilement mieux.
[^] # Re: Exhaustivité...
Posté par monsieurw . Évalué à 1.
Par contre, il est préférable d'échapper le "$", sinon -selon le shell-, "$page" peut être substitué.
Dans le cas où certains noms de fichiers ont un espace, on peut utiliser le caractère NUL au lieu d'un espace pour la sortie de "find" et on indique à "xargs" que NUL est le séparateur avec l'option "-0". (attention, ceci valable pour les commandes GNU, ça n'est pas valable sur tous les Unix)
find . -iname "*.php" -print0 | xargs -0 grep "\$page"
ou
find . -iname "*.php" -print0 | xargs -0 grep '$page'
--
unk
[^] # Re: Exhaustivité...
Posté par Le Gall Sébastien . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.