• Publicidad

Guardar nombres de los archivos

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

Guardar nombres de los archivos

Notapor lis » 2008-08-09 18:51 @827

Hola a todos: tengo una carpeta que contiene los siguientes "n" archivos con extensión .dat. Lo que quiero hacer es solo tomar los nombres de esos "n" archivos y guardarlos en uno nuevo archiv.dat. Por ejemplo, tengo los archivos que se llaman así 20050101.dat hasta 20050131.dat (que son añomesdia.dat), y quiero guardar sus nombres así:

Código: Seleccionar todo
20050101.dat
20050102.dat
20050103.dat
       .
       .
       .
       .
20050131.dat


Algunos de uds. dirán por qué mejor no hago un ciclo for indicándole de dónde empieza hasta donde termina, pero el problema es que tengo 1095 archivos .dat y no todas las fechas están, y para buscarlas sería algo tedioso y complicado.

Les agradezco cualquier ayuda.
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Publicidad

Notapor explorer » 2008-08-09 22:33 @981

Bueno, una solución sería esta (no probada):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;

my @ficheros = <2005*.dat>;

open  SALIDA, '>archiv.dat' or die "No puedo escribir: $!\n";
print SALIDA join "\n", @ficheros, '';
close SALIDA;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


En cuanto a hacer un bucle entre dos fechas, sí que se puede hacer: saltamos aquellos ficheros que no están (no probado):

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;

open SALIDA, '>archiv.dat' or die "No puedo escribir: $!\n";
for my $fecha ( 20050101 .. 20071231 ) {
    my $fichero = "$fecha.dat";
    next if !-e $fichero;       # saltamos al siguiente si no existe el fichero
    print SALIDA "$fichero\n";  # si sí existe, lo añadimos a la lista
}
close SALIDA;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Bueno, es un poco bruto recorrer miles de ficheros que sabemos que no existen... pero es la ventaja de tener las fechas bien puestas (año, mes, día), en su orden correcto... las podemos tratar como números enteros. Y además, hoy en día tenemos ordenadores muy rápidos, para saltar las fechas de los ficheros que no existen.
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 Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado