• Publicidad

Quitar los puntos de los directorios en un listado de ficher

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

Quitar los puntos de los directorios en un listado de ficher

Notapor erjuak » 2013-05-14 03:08 @172

Quiero sacar los ficheros de un directorio con el script:

#!/usr/bin/perl
$dir = "/directorio";
opendir(DIR, "$dir");
@FILES = readdir(DIR);
foreach $file (@FILES) {
print $file, "\n";
}
closedir(DIR)

Si lanzáramos este script, me sacaría la siguiente salida:

.
sftp_put.pl
sube_zip_opersev.pl
directorio.pl
copia_todos.sh
sftp.pl
ftpssl.pl
..


¿Cómo podría quitar los puntos de los directorios, el '.' y el '..'?

Muchas Gracias.
erjuak
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2013-03-07 11:52 @536

Publicidad

Re: Quitar los puntos de los directorios en un listado de fi

Notapor explorer » 2013-05-14 04:45 @240

Esos 'puntos' son directorios.

El '.' representa el directorio actual, mientras que el '..' representa el directorio padre.

Si no quieres sacarlos, solo tienes que obviarlos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. $dir = "/directorio";
  3. opendir(DIR, "$dir");
  4. @FILES = readdir(DIR);
  5. for $file (@FILES) {
  6.     next if $file eq '.' or $file eq '..';
  7.     print $file, "\n";
  8. }
  9.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
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: Quitar los puntos de los directorios en un listado de fi

Notapor erjuak » 2013-05-14 05:09 @256

Gracias, explorer.

Es justo lo que necesitaba. No puede ser una solución más simple y correcta.

¡Muchas Gracias de nuevo!

Un saludo.
erjuak
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2013-03-07 11:52 @536

Re: Quitar los puntos de los directorios en un listado de fi

Notapor explorer » 2013-05-14 05:50 @285

¡Je, je, je...!

En Perl, siempre hay una solución más simple y correcta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -le 'print for grep{!/^[.][.]?$/}</directorio/*>'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Aunque... no necesariamente legible :)
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 54 invitados