Pablo Salinas Rivera escribio:
[...]
> tengo archivos con mp3 (minusculas) y MP3 (mayusculas), hay archivos con 
> espacios en el nombre, y hay un archivo "no-mp3" (portada.jpg).

Aprovecho de pasar el dato para renombrar todos los archivos con
mayusculas a minusculas:

    for song in *.MP3; do
        mv "$song" "${song/MP3/mp3}"
    done

[...]
> ocupamos el asterisco como delimitador, ya que no se puede ocupar en
> nombres de archivos..

Si se puede!

> $ find .  -type f  | grep "\.[mM][pP]3$" |  sed -e 's/.*/"&"/' | \
>     awk 'BEGIN{ORS="*"}{print}END{print NR}'

find, awk y sed son lo suficientemente poderosos para no necesitar grep
(y para no necesitarse mutuamente).  Lo mismo puede ser escrito como:

    find . -iname '*.mp3' | awk 'BEGIN {s=""} {s = s "\"" $0 "\"*" } END {print 
s NR}'

Con sed casi me sale :(

    find . -iname '*.mp3' | sed -ne 's/.*/"&"*/; H; ${x; s/\n//g; p; =}'

Y si no fuera por tener que escribir el numero de archivos al final, se
podria hacer con puro find:

    find . -iname '*.mp3' -exec echo -n '"{}"*' \;

Saludos!
-- 
Roberto Bonvallet
From [EMAIL PROTECTED]  Tue Dec 13 00:30:28 2005
From: [EMAIL PROTECTED] (Carlos Moyano Cubillos)
Date: Tue Dec 13 01:26:00 2005
Subject: seleccion de archivos de manera aleatoria en bash???
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

Hoooolaaaaa

El 12/12/05, Alvaro Herrera<[EMAIL PROTECTED]> escribió:
>
> Probaste cambiando el IFS, como te sugeri?
>

mmm, sip
ahora lo intente, no lo habia pescado antes porque no tenia ni la mas
minima idea de que se trataba, asi ke hice un "man bash" y ahi me
entere de que se trata, lo probe y me funciono.


asi ke gracias,

aca un ejemplo de lo que tengo, la eleccion de los archivos y todo el
cuento de la copia no creo ke deberia darme problema, el resto es solo
programar...

################################
IFS="
"
dir="/mnt/respaldo/musica"
lista=($(find ${dir} -type f -name '*.[mM][pP]3'))
[EMAIL PROTECTED]
num=$[RANDOM*${tamlst}/32767]
tam=$(stat -c %s ${lista[$num]})
echo "mp3s encontrados: $tamlst"
echo "numero de archivo aleatorio: $num "
echo "Archivo: ${lista[$num]}"
echo "Peso del archivo:  $tam"
################################

creo que con esto tengo todo lo necesario para proceder...

asi que muchas gracias por la ayuda a todo el mundo!!

cuando lo termine si quieren lo mando para que me corrijan, critiquen
y ayuden a mejorarlo jajajaj

salu2

--
C.M.C.

Responder a