2012-06-25 13 views

Respuesta

20

¿Quizás esta?

sudo cd/&& grep -rn "hello" * 

EDITAR: la opción 'n' por supuesto no es necesaria, simplemente muestra los números de línea y me parece agradable. La opción 'r' le dice a grep que realice una búsqueda recursiva dentro de los directorios.

+2

Especificar '.' puede ser preferible a' * 'si hay muchos archivos en el directorio. (Puede golpear un error de demasiados argumentos) – Evert

+0

@Evert nunca pensó en eso gracias. –

+0

@NBenatar pensó en esta solución, pero creo que esta solución es un poco más fácil de entender. Podría ser que estoy equivocado. –

2

Esto?

find . -exec grep -H "hello" {} \; 
+0

Evita el error de "demasiados argumentos". –

9

Uso

grep -r 'pattern'/

Si su grep apoya -r, (GNU grep hace); Si no utiliza

find/-type f -exec grep 'pattern' {} + 

Si su find apoya -exec con +, de lo contrario usar

find/-type f -printf '%p\0' | xargs -0 grep 'pattern' 

Si su find apoya -printf y su xargs apoya -0, o

find/-type f -print0 | xargs -0 grep 'pattern' 

Si sus find soportes solo -print0 y su xargs admite -0. En todos los demás casos recurren a

find/-type f | xargs grep 'pattern' 

Ésta es máximamente compatible, con la advertencia de que ciertos nombres de archivo inusual dejarán de ser grepped y nombres de archivos diseñada podría suponer un riesgo para la seguridad.

Tenga en cuenta que deberá estar en la raíz para asegurarse de buscar todos los archivos y que la búsqueda será sensible a mayúsculas y minúsculas a menos que agregue -i a grep.

+0

buscar/-type f | xargs grep 'pattern' ==> funciona para aix! – LeoPucciBr

Cuestiones relacionadas