Pregunta

Mi código

$  *.php | grep google

¿Cómo puedo imprimir los nombres de archivo y LINENUMBERS junto a cada partido?

¿Fue útil?

Solución

grep google *.php

si quiere abarcar muchos directorios:

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

(como se explica en los comentarios, -H es útil si xargs sube con sólo un archivo restante)

Otros consejos

No se debe hacer

$ *.php | grep

Esto significa "ejecutar el primer programa PHP, con el nombre del resto comodín como parámetros, y luego ejecutar grep en la salida".

Debe ser:

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

La bandera -n dice que haga números de línea, y la bandera -H le indica que debe mostrar el nombre del archivo, incluso si sólo hay archivo. Grep predefinida que muestra los nombres de archivo si hay varios archivos que se busca, pero es probable que quieren asegurarse de que la salida es constante independientemente del número de archivos coincidentes existen.

grep -RH "google" *.php

Por favor, eche un vistazo a ACK en http://betterthangrep.com . El equivalente en el acuse de recibo de lo que estamos tratando es:

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

Utilice "grep" para ver otras características.

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top