• Publicidad

Buscar palabra en archivos de varios directorios

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Buscar palabra en archivos de varios directorios

Notapor mgonzalez » 2011-01-05 10:29 @478

Hola, lo que busco es una forma de buscar dentro de todos los archivos de una carpeta y de las subcarpetas, una determinada palabra.

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -p -i -e 's/hola/ok/' fichero.txt
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Muchas gracias por su ayuda.
mgonzalez
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2010-10-13 08:54 @412

Publicidad

Re: Buscar palabra en archivos de varios directorios

Notapor explorer » 2011-01-05 10:43 @488

El comando que has puesto edita el fichero 'fichero.txt', cambiando el primer 'hola' de cada línea por el texto 'ok', que creo que no tiene nada que ver con lo que preguntas.

Para buscar una palabra dentro de ficheros se suelen usar los comandos del sistema grep(1) (y familiares) o el ack (que es la versión moderna de grep(1), escrita en Perl).

Si quieres hacerlo en forma de programa Perl, deberás incluir instrucciones para recorrer todos los ficheros de forma recursiva a partir del directorio de trabajo, y por cada uno, abrirlo si es de texto (cosa fácil con los operadores -X), leerlo línea a línea y buscar la palabra dentro de la línea. Si es una palabra fija, usa index(). Si usas comodines, los tendrás que traducir a una expresión regular. Y sales inmediatamente del bucle de lectura de líneas en cuanto encuentres la primera ocurrencia de la búsqueda.

Sí... es más rápido usar grep(1).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Buscar palabra en archivos de varios directorios

Notapor mgonzalez » 2011-01-05 11:00 @500

Gracias por la respuesta.

grep(1), es de Linux... o no.

Estoy en mi PC (WinXP) accediendo a una carpeta del servidor.
mgonzalez
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2010-10-13 08:54 @412

Re: Buscar palabra en archivos de varios directorios

Notapor explorer » 2011-01-05 11:11 @507

Si, es que los Windows apenas traen herramientas de desarrollo. Pero sí que hay por ahí un paquete para Windows, como por ejemplo GnuWin y alguno más.

Dices que estás accediendo al servidor. Entonces, ¿es en el servidor donde quieres hacer la búsqueda? ¿con qué protocolo estás accediendo y haciendo la búsqueda? ¿qué sistema operativo tiene el servidor?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Buscar palabra en archivos de varios directorios

Notapor mgonzalez » 2011-01-05 12:05 @545

Si, en el servidor que está con Windows Server 2000, ahí corren aplicaciones CGI. Yo accedo a los fuentes por medio de una IP. Algo así como \\10.33.200.155\cgi-bin
mgonzalez
Perlero nuevo
Perlero nuevo
 
Mensajes: 28
Registrado: 2010-10-13 08:54 @412

Re: Buscar palabra en archivos de varios directorios

Notapor explorer » 2011-01-05 14:45 @656

¿CGI? ¿Quieres decir que quieres hacer una búsqueda ejecutando un CGI en el servidor? Muy curioso, viendo que se trata de un UNC de Windows...

Da igual. En cualquier caso, me remito a mi contestación anterior donde debes hacer la búsqueda recursiva, abrir ficheros, etc, etc.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 22 invitados