[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[RESUMEN] Busqueda recursiva



On Thu, 1 Feb 2001, c d wrote:

> A mi me gustaria saber qué hay q poner para q se vea, a parte de la cadena buscada, la ruta y el nombre del archivo donde se encuentra.
> Salu2
> Carlos
> ------------

La pregunta no va para mi pero son tantas las veces que se pregunta
esto que intentaré hacer un resumen. Lo mando a la lista de
debian-user-spanish y a la de l-linux. Espero no molestar pero la
pregunta se hacia en Debian y en l-linux tienen un buscador que
necesita que la gente mande resumenes.

Bueno hay muchas formas mas o menos ingeniosas de hacer eso
y ya han mencionado muchas. Por recordar tres de ellas:

find . -type f -name '*.c' -exec grep "cadena" \{\} \;
find . -type f -name '*.c' | xargs grep "cadena"
grep "cadena" `find . -type f -name '*.c'`

La primera no te permite ver la ruta y el nombre del archivo donde se 
encuentra, pero en la segunda y la tercera si. estas dos últimas en 
cambio puede llegar a pasar un elevadísimo número de argumentos a grep 
y eso tampoco es bueno. La shell podría llegar a quejarse por ello.

En mi opinión rgrep  es lo más indicado para eso. En realidad creo 
que rgrep y grep se han unificado y /usr/bin/rgrep es ahora un script 
que ejecuta grep con la opcion -r.

grep -r "cadena" .

Con esto puedes ver la ruta y el nombre del fichero aunque hay un
inconveniente. No puedes limitar la busqueda a los '*.c'.

El antiguo rgrep cuando era un programa independiente de grep
tenía una opción mediante la cual se podía especificar la terminación
de los nombres de fichero pero ahora creo que con grep -r ya no se
puede hacer,  asi que para buscar recursivamente en los ficheros "*.c"
habriá que usar el find combinado con grep.

A mi me parece que la unificación de grep y rgrep no ha sido una buena
idea y desconozco si en algunas distribuciones se ha mantenido por
separado. Yo uso Debian y en la Potato lo tengo ahora unificado. Quizas
exista algún paquete específico para rgrep pero no lo he visto.

Unificar fgrep, egrep y egrep si creo que es interesante pero en el caso
de rgrep se ha perdido la posibilidad de usar una opción importante.

Siempre se puede buscar los fuentes del rgrep y compilarlos pero sería
mejor que estuviera dentro del sistema de paquetes de Debian. Quizas
aun esté en algún paquete pero yo no lo he visto.


Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Informática (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
	 _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+




Reply to: