Domanda

Il mio codice

$  *.php | grep google

Come posso stampare i nomi di file e LINENUMBERS accanto ad ogni partita?

È stato utile?

Soluzione

grep google *.php

se si vuole abbracciare molte directory:

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

(come spiegato nei commenti, -H è utile se xargs esce con un solo file rimanenti)

Altri suggerimenti

Non si dovrebbe fare

$ *.php | grep

Ciò significa "eseguire il primo programma PHP, con il nome del resto wildcarded come parametri, e quindi eseguire grep sull'uscita".

Dovrebbe essere:

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

Il flag -n dice di fare i numeri di riga, e la bandiera -H dice di visualizzare il nome del file, anche se c'è solo file. Grep imposterà a mostrare i nomi dei file se non ci sono più file da cercare, ma probabilmente si desidera assicurarsi che l'uscita è coerente indipendentemente dal numero di file corrispondenti ci sono.

grep -RH "google" *.php

Si prega di dare un'occhiata a ack a http://betterthangrep.com . L'equivalente in ack di quello che stai cercando è:

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

Con "l'uomo grep" per vedere le altre caratteristiche.

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top