Frage

Mein Code

$  *.php | grep google

Wie kann ich drucken, um die Dateinamen und Zeilennummern neben jedes Spiel?

War es hilfreich?

Lösung

grep google *.php

Wenn Sie viele Verzeichnisse zu überbrücken:

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

(wie in den Kommentaren erklärt, -H nützlich ist, wenn xargs kommt mit nur einer verbleibenden Datei)

Andere Tipps

Sie sollten nicht tun

$ *.php | grep

bedeutet, dass „das erste PHP-Programm ausführen, mit dem Namen der übrigen Wildcards als Parameter, und dann grep auf dem Ausgang laufen“.

Es sollte sein:

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

Die -n Flag teilt ihm Zeilennummern zu tun, und die -H Flag teilt es die Dateinamen angezeigt werden, auch wenn es nur Datei. Grep zeigt die Dateinamen wird standardmäßig, wenn mehrere Dateien durchsucht, aber Sie wollen wahrscheinlich um sicherzustellen, dass die Ausgabe konsistent ist unabhängig davon, wie viele passende Dateien vorhanden sind.

grep -RH "google" *.php

Bitte werfen Sie einen Blick auf ack unter http://betterthangrep.com . Das Äquivalent in ack von dem, was Sie versuchen, ist:

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

Verwenden Sie "man grep" andere Funktionen zu sehen.

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top