seleccion de archivos de manera aleatoria en bash???

Roberto Bonvallet rbonvall en alumnos.inf.utfsm.cl
Mar Dic 13 00:29:08 CLST 2005


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


Más información sobre la lista de distribución Linux