Mie Jun 11, 2008 3:52 pm
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
| Comodín |
|
|
Una pregunta algo básica, pero tengo mi código
| Perl: | use POSIX;
#**************************************************
my $AYER = strftime ("%Y%m%d", localtime(time - 86400));
#**************************************************
|
En donde $AYER, me da la fecha, pero necesito buscar X archivos y
necesito que $AYER2 = "ejemplo_$AYER.dat" ;
donde (*) son todos los demás números, o letras que le sigan después de ahí.
Se podría hacer un while, definiendo los rangos, de esos espacios, pero no existe algún comodín que me permita hacer esto; ¿cómo se haría normalmente en una terminal?
Saludos |
|
|
|
Mie Jun 11, 2008 4:07 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3873
Ubicación: Valladolid, España
|
|
|
|
Mie Jun 11, 2008 4:37 pm
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
|
|
|
Aquí una duda, glob() aplica para POSIX porque sale un error...
| Código: |
File::Glob version 20080610* required--this is only version 1.05 at /usr/share/perl/5.8/Exporter/Heavy.pm line 107.
BEGIN failed--compilation aborted at sftp.pl line 6. |
|
|
Mie Jun 11, 2008 4:49 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3873
Ubicación: Valladolid, España
|
|
|
|
|
| Humm... yo he dicho glob(). No he dicho nada de File::Glob. |
|
Mie Jun 11, 2008 5:00 pm
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
|
|
|
Algo así
| Perl: | use POSIX;
#**************************************************
my $AYER = strftime ("%Y%m%d", localtime(time - 86400));
my $file = glob("ejemplo_$AYER*.pm"); |
Pero mi duda recae en que esto va a buscar y traer un archivo, por lo que necesito usar
| Perl: | my $remote = "ejemplos/ups/sql/$file";
my $local = "/home/sql/$file";
$sftp-> get($remote, $local)or die "No se bajar el archivo";
#$sftp->message."\n";
|
|
|
Mie Jun 11, 2008 6:01 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3873
Ubicación: Valladolid, España
|
|
|
|
|
No, los comodines no te sirven de nada con el protocolo HTTP.
Tienes varias opciones. Una de ellas, si le puedes pedir un listado de ficheros al servidor web, puedes luego ir pidiendo fichero por fichero. |
|
Jue Jun 26, 2008 12:54 pm
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
|
|
|
Hummmm Sí, ya me di cuenta, opté por hacer un proceso *.sh y comprimir todo con gzip, para después usar el proceso de extracción dirigido solo a ese archivo...
Saludos |
|
Jue Jun 26, 2008 2:43 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3873
Ubicación: Valladolid, España
|
|
|
|
|
| Sería interesante ver ese código shell... |
|

Vie Jun 27, 2008 11:27 am
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
|
|
|
| bash: | #!/usr/bin/ksh
. $HOME/.profile
export COLECTORHOME=/export/home/thread
export AYER=`perl $COLECTORHOME/bin/ayer2.pl `;
export prefix=pruebas
cd ${COLECTORHOME}/historico/
echo ${AYER}0
gzip ${prefix}${AYER}0*
tar -cvf Tar_PRUEBAS_LAT_${AYER}0.tar ${prefix}${AYER}0*
rm ${prefix}${AYER}0*
echo ${AYER}1
gzip ${prefix}${AYER}1*
tar -cvf Tar_PRUEBAS_LAT_${AYER}1.tar ${prefix}${AYER}1*
rm ${prefix}${AYER}1*
echo ${AYER}2
gzip ${prefix}${AYER}2*
tar -cvf Tar_PRUEBAS_LAT_${AYER}2.tar ${prefix}${AYER}2*
rm ${prefix}${AYER}2*
gzip *.tar
echo Termino |
Y listo, con eso comprimo todo en 3 archivos por comodidad y uso así lo hago en vez de uno solo... y con la función de Perl ayer.pl
| Perl: | use POSIX;
#**************************************************
my $AYER = strftime ("%Y%m%d", localtime(time - 86400));
#**************************************************
print "$AYER"; |
establezco la fecha. Y listo... por el momento está funcionado bien...
 |
|

Vie Jun 27, 2008 12:23 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3873
Ubicación: Valladolid, España
|
|
|
|
|
Desde luego, es factible hacerlo todo en Perl.
Y si solo estás usando Perl para calcular el día de ayer, yo hubiera usado en su lugar el comando date(1) del sistema. |
|
Lun Jul 28, 2008 9:40 am
|
 |
Kiloko
Perlero Adicto

|
Registrado: 10 Jul 2007
Mensajes: 239
Ubicación: MOnterrey NL
|
|
|
|
|
Suena factible, pero lo meto en un programa aparte por que hay veces que necesito modificar la fecha, y así solo modifico ese archivo,  |
|
Powered by phpBB © 2001, 2005 phpBB Group
|