• Publicidad

Ayuda con script para buscar una palabra en archivo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ayuda con script para buscar una palabra en archivo

Notapor mr_bowser » 2011-10-06 18:58 @832

Amigos: necesito hacer este trabajo para la universidad y la verdad me tiene bastante complicado, el enunciado es el siguiente:

Lista los archivos que contengan cierto string (puede ser una palabra o más de una) más cerca del principio y más cerca del final de su contenido. Deben incluirse en el resultado sólo aquellos archivos que sea de tipo texto (ASCII) y que pesen menos de 2024 bytes. Tanto el string a buscar como el directorio donde realizar la búsqueda serán entregados como parámetro por el usuario de la shell ($1 y $2). Su solución debe incluir validación de parámetros.

Por favor, cualquier ayuda me sirve, de antemano muchas gracias.
mr_bowser
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-10-06 18:55 @830

Publicidad

Re: Ayuda con script para buscar una palabra en archivo

Notapor explorer » 2011-10-06 19:12 @842

Bienvenido a los foros de Perl en español, mr_bowser.

Debes recorrer el directorio indicado con opendir(), readdir() y closedir().

Por cada fichero, debes ver su tamaño, con el operador -s, y quedarte con los menores de 2024 bytes.

También, debes quedarte con los que sean texto, algo para lo que puedes usar el operador -T.

No entiendo lo de "más cerca del principio" y "más cerca del final". Yo supongo que se refiere a indicar la primera posición y la última posición del texto a buscar, dentro del fichero.

Puedes leer el fichero con open(), <> y close(), y pasarlo a una variable escalar, y luego usar index() para localizar la primera posición, y rindex(), para la última.

Aquí hay un problema... ¿qué hacemos con los casos en los que tenemos que buscar por varias palabras y resulta que en un fichero aparecen esas palabras repartidas por dos o más líneas (en vez de un espacio en blanco hay un carácter de avance de línea).

No está indicado en el enunciado, así que procederemos a resolverlo no teniendo en cuenta ese caso.

Con perldoc -f <nombre de función> tienes acceso a toda la documentación de las funciones que te indico.

¡Adelante!
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ayuda con script para buscar una palabra en archivo

Notapor mr_bowser » 2011-11-21 08:01 @375

Muchísimas gracias amigo, has sido de gran ayuda. :D
mr_bowser
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-10-06 18:55 @830


Volver a Básico

¿Quién está conectado?

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

cron