Question

Mon code

$  *.php | grep google

Comment puis-je imprimer les noms de fichiers et linenumbers à côté de chaque match?

Était-ce utile?

La solution

grep google *.php

si vous voulez couvrir plusieurs répertoires:

find . -name \*.php -print0 | xargs -0 grep -n -H google

(comme expliqué dans les commentaires, -H est utile si xargs arrive avec un seul fichier restant)

Autres conseils

Vous ne devriez pas faire

$ *.php | grep

Cela signifie « exécuter le premier programme de PHP, avec le nom du reste des caractères génériques en tant que paramètres, puis exécutez grep sur la sortie ».

Il devrait être:

$ grep -n -H "google" *.php

Le drapeau -n dit à faire des numéros de ligne, et le drapeau de -H il indique pour afficher le nom du fichier, même s'il y a fichier uniquement. Grep par défaut pour montrer les noms de fichiers s'il y a plusieurs fichiers sont fouillés, mais vous voulez probablement vous assurer que la sortie est constante quel que soit le nombre de fichiers correspondant il y a.

grep -RH "google" *.php

S'il vous plaît jeter un oeil à ack http://betterthangrep.com . L'équivalent en ack de ce que vous essayez est:

ack google --php
find ./*.php -exec grep -l 'google' {} \; 

Utilisez "man grep" pour voir d'autres caractéristiques.

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top