Subject: Re: buscar texto
Date: Fri, 21 Aug 1998 15:02:28 +0200
From: "Valentín"
Newsgroups: es.comp.os.linux
jose antonio wrote in message <35DC772E.65CCBBCE@abonados.cplus.es>...
|Me gustaría saber como puedo buscar texto en varios archivos y que pueda
|admitir comodines y a ser posible que tambien admita en bucar en
|subdirecstorios. Estoy seguro de que hay algun programilla de esos para
|linux. En dos, yo utilizo uno de Norton.
|¡¡¡¡¡¡¡Gracias!!!!!.
|
|
Este es un aspecto resuelto hace siglos en unix mediante "grep" y "find"
Aqui te dare unicamente ejemplos pero deberias de mirarte las paginas de
manual (man grep. man find).
"Grep" te permite buscar "expresiones regulares" en archivos.
Ej:
$ grep hola pepe.c # busca la cadena hola en pepe.c
$ grep hola *.c # busca la cadena hola en los ficheros extension .c del
directorio actual
Algo mas complicado:
$ grep ^(f|b)*o(h)+. * # X* = X 0 o mas veces, X+ = X 0 o mas veces , ^X = X
al principio de linea,
. = cualquier caracter menos \n. X | Y = X o Y. Este ejemplo haceptaria
las palabras siguientes si
se encuentra en el margen izquierdo.
ohx
fbfbohhhhaavvddf
fffohhMAMAMIA
...
Ejemplo de uso comun: Listar unicamentes directorios:
$ ls -l | grep ^d
find sirbe para listar todos los archivos de un subarbol. Puede ejecutar
intrucciones por cada archivo:
$ find /usr/include -name "*.h" -exec grep open {} \; -print
por cada archivo de include busca open con grep e imprime el nombre de
archivo despues.
Espero haber sido de ayuda
Valentín
----------------------------------------------------------------
RoMaRiO wrote:
>
> Como buscar texto en subdirectorios ?
Algunos ejemplos:
grep "string" `find . -type f`
find . -type f | xargs grep "string"
find . -type f | xargs fgrep "string" /dev/null
locate $PWD | grep "^$PWD" |xargs fgrep "string" /dev/null
find . \( -type f -name "*\.html" \) -exec grep -l "string" {} \;
Yo suelo usar el de find . -type f | xargs fgrep "string" /dev/null
Luis E. Garcia-Castillo"
Santiago Romero
Volver a la página de linux.