🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
11 messages
11 total messages Started by David Serrano (Hue-Bond) Sun, 09 Apr 2006 19:28
GOLF: averiguar directorios con un Ășnico archivo dentro
#1038
Author: David Serrano (Hue-Bond)
Date: Sun, 09 Apr 2006 19:28
25 lines
1994 bytes
Por si alguien se aburre (tanto como yo) (que no creo)...

En un directorio cualquiera (por ejemplo, uno llamado "mp3" ;^)) tenemos un
montĂłn de directorios en los que dentro puede haber:

a) varios archivos y/o directorios
b) un Ășnico directorio
c) un Ășnico archivo regular

En dicho directorio mp3 sĂłlo hay directorios. En ningĂșn sitio hay sockets,
pipas ni demĂĄs. Queremos averiguar, de todos estos directorios, los que
cumplen c). El programa debe imprimirlos separados por alguno de los
caracteres habituales de $IFS. El mp3 es nuestro directorio actual de
trabajo.

Este es mi intento, 48 caracteres:

perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<*>'

Si alguien lo va a probar en bash, que sepa que ninguno de los archivos o
directorios tiene espacios en el nombre.


-- 
 David Serrano
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1039
Author: Josïżœ Luis Pïżœrez Diez
Date: Mon, 10 Apr 2006 10:32
18 lines
1837 bytes
In article <slrne3io3q.2r9.responder_solo_en_el_grupo@genus.hue-bond.info>, 
David Serrano (Hue-Bond) wrote:
> En un directorio cualquiera (por ejemplo, uno llamado "mp3" ;^)) tenemos un
> montĂłn de directorios en los que dentro puede haber:
> 
> a) varios archivos y/o directorios
> b) un Ășnico directorio
> c) un Ășnico archivo regular
>

En todos los sistemas de archivos que conozco todos los directorios contienen 
al menos dos directorios
 :-)
 
--
Los programadores esta ocupados intendtado mejorar los programas a prueba de 
idiotas. Mientras tanto el universo  intenta mejorar los idiotas. El universo 
va ganando
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1040
Author: gamo
Date: Mon, 10 Apr 2006 21:47
48 lines
2269 bytes
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-800210553-1144705656=:21536
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Sun, 9 Apr 2006, David Serrano (Hue-Bond) wrote:

> Por si alguien se aburre (tanto como yo) (que no creo)...
>=20
> En un directorio cualquiera (por ejemplo, uno llamado "mp3" ;^)) tenemos =
un
> mont=F3n de directorios en los que dentro puede haber:
>=20
> a) varios archivos y/o directorios
> b) un =FAnico directorio
> c) un =FAnico archivo regular
>=20

#!/usr/local/bin/perl -w

ver("/home/");

sub ver{
    my $DIR =3D shift ;
    my $count=3D0;=09=09
    print "DIR-> $DIR\n";
    opendir DIR, $DIR or warn "Cannot open $DIR";
    my @files =3D readdir DIR;
    closedir DIR;
    for my $i (@files){
        next if ($i=3D~/^\.\z/ || $i=3D~/^\.\.\z/);
#        print "$i\n";
=09$count++;
        $newdir =3D $DIR.$i."/";
        if ( (chdir $newdir) ){
            ver($newdir);
        }
    }
    if ($count=3D=3D1) { print "$DIR has only 1 item\n"; }=09
}
__END__

UNTESTED


--8323328-800210553-1144705656=:21536--
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1041
Author: gamo
Date: Mon, 10 Apr 2006 22:23
23 lines
1784 bytes
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-778753511-1144707786=:21560
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Sun, 9 Apr 2006, David Serrano (Hue-Bond) wrote:

> a) varios archivos y/o directorios
> b) un =FAnico directorio
> c) un =FAnico archivo regular
>=20
> En dicho directorio mp3 s=F3lo hay directorios. En ning=FAn sitio hay soc=
kets,
> pipas ni dem=E1s. Queremos averiguar, de todos estos directorios, los que
> cumplen c). El programa debe imprimirlos separados por alguno de los

Perd=F3n, yo contaba b) y c)
Pon un $count--; dentro del if (chdir)
Saludos

--8323328-778753511-1144707786=:21560--
Re: GOLF: averiguar directorios con un ÃÂșnico archivo dentro
#1044
Author: J.A. Gutierrez
Date: Mon, 17 Apr 2006 12:10
30 lines
2038 bytes
"David Serrano (Hue-Bond)" <responder_solo_en_el_grupo@yahoo.es> wrote:

: c) un Ășnico archivo regular

: Este es mi intento, 48 caracteres:
: perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<*>'

	Pues no parece que funcione (aparte, usar la expansion
	de "*" en perl es trampa, ya que internamente lanza un csh)

: Si alguien lo va a probar en bash, que sepa que ninguno de los archivos o
: directorios tiene espacios en el nombre.
	
	Casi seguro que se puede hacer usando find + sed, pero no
	me aburro *tanto*

find . -type d -print | while read d
do
if [ "1" -eq `ls -A1 "$d" | wc -l` ]; then
    test -d "$d"/*  || ls "$d"/*
fi
done



-- 
PGP and other useless info at      \
http://webdiis.unizar.es/~spd/      \
finger://daphne.cps.unizar.es/spd    \       Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/          \                         (Virgilio)   
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1069
Author: David Serrano (Hue-Bond)
Date: Wed, 03 May 2006 20:09
19 lines
1804 bytes
J.A. Gutierrez, lun20060417@14:10:14(CEST):
>

Tardo tanto en responder porque he estado sin internet.

> 	usar la expansion
> 	de "*" en perl es trampa, ya que internamente lanza un csh

Lanzaba un csh en versiones de Perl anteriores a la 5.6.0. Ahora estĂĄ
implementado usando el mĂłdulo File::Glob.

$ grep -w csh $(locate Glob.pm)
/usr/lib/perl/5.8.8/File/Glob.pm:        # XXX this is needed for compatibility with the csh
/usr/share/perl/5.8.8/File/DosGlob.pm:Extending it to csh patterns is left as an exercise to the reader.
$ _


-- 
 David Serrano
Re: GOLF: averiguar directorios con un ÃÂșnico archivo dentro
#1070
Author: J.A. Gutierrez
Date: Thu, 04 May 2006 07:50
18 lines
1895 bytes
"David Serrano (Hue-Bond)" <responder_solo_en_el_grupo@yahoo.es> wrote:
: J.A. Gutierrez, lun20060417@14:10:14(CEST):

:> 	usar la expansion
:> 	de "*" en perl es trampa, ya que internamente lanza un csh

: Lanzaba un csh en versiones de Perl anteriores a la 5.6.0. Ahora estĂĄ
: implementado usando el mĂłdulo File::Glob.

	Anda, pues es cierto! No me habia enterado del cambio; asi
	esta mucho mejor...


-- 
PGP and other useless info at      \
http://webdiis.unizar.es/~spd/      \
finger://daphne.cps.unizar.es/spd    \       Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/          \                         (Virgilio)   
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1072
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Thu, 04 May 2006 19:22
49 lines
2794 bytes
Hola "David Serrano (Hue-Bond)" <responder_solo_en_el_grupo@yahoo.es>
el Sun, 9 Apr 2006 19:28:58 +0000 (UTC) escribiste:

> Por si alguien se aburre (tanto como yo) (que no creo)...

Por cambiar de diversiĂłn, me he metido a ello ...

> 
> En un directorio cualquiera (por ejemplo, uno llamado "mp3" ;^)) tenemos un
> montĂłn de directorios en los que dentro puede haber:
> 
> a) varios archivos y/o directorios
> b) un Ășnico directorio
> c) un Ășnico archivo regular
> 
> En dicho directorio mp3 sĂłlo hay directorios. En ningĂșn sitio hay sockets,
> pipas ni demĂĄs. Queremos averiguar, de todos estos directorios, los que
> cumplen c). El programa debe imprimirlos separados por alguno de los
> caracteres habituales de $IFS. El mp3 es nuestro directorio actual de
> trabajo.
> 
> Este es mi intento, 48 caracteres:
> 
> perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<*>'

Eso a mĂ­ no me funciona
> 
> Si alguien lo va a probar en bash, que sepa que ninguno de los archivos o
> directorios tiene espacios en el nombre.
> 
> 

Esto lista los directorios que sĂłlo contienen un fichero, creo. No he verificado
si se deja alguno, pero lo he probado en ~/ y todos los que lista cumplen esa
condiciĂłn.

for i in `find . -maxdepth 1 -type d -links 2`; do [ `ls -Al $i | wc -l` == 2 ] && echo $i; done

Mira la nota a -noleaf en man find(1): esto no vale para todos
los sistemas de ficheros.

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1081
Author: David Serrano (Hue-Bond)
Date: Sun, 07 May 2006 14:08
12 lines
1519 bytes
Gonzalo Pérez de Olaguer Córdoba, jue20060504@21:22:53(CEST):
>
>> perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<*>'
>
> Eso a mĂ­ no me funciona

Pues es curioso, ya van dos que decĂ­s lo mismo... pero a mĂ­ me tira bien. Mi
Perl es la 5.8.8.


-- 
 David Serrano
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1082
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Sun, 07 May 2006 14:37
20 lines
2052 bytes
Hola "David Serrano (Hue-Bond)" <responder_solo_en_el_grupo@yahoo.es>
el Sun, 7 May 2006 14:08:33 +0000 (UTC) escribiste:

> Gonzalo Pérez de Olaguer Córdoba, jue20060504@21:22:53(CEST):
> >
> >> perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<*>'
> >
> > Eso a mĂ­ no me funciona
> 
> Pues es curioso, ya van dos que decĂ­s lo mismo... pero a mĂ­ me tira bien. Mi
> Perl es la 5.8.8.

SĂ­ que me funciona, perdona. Lo habĂ­a probado en mi home y no lista
los directorios ocultos (~/.dir) con un sĂłlo fichero, pero los que
tienen nombre *normal* sĂ­ (con perl 5.8.4).

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: GOLF: averiguar directorios con un Ășnico archivo dentro
#1109
Author: David Serrano (Hue-Bond)
Date: Fri, 19 May 2006 01:24
11 lines
1580 bytes
Gonzalo Pérez de Olaguer Córdoba, dom20060507@16:37:23(CEST):
>
> Lo habĂ­a probado en mi home y no lista los directorios ocultos

4 caracteres mĂĄs y a funcionar:

perl -le'@_=<$_/*>,@_==1&&-f$_[0]&&print for<{,.}*>'


-- 
 David Serrano
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads