[LUG.ro] Catalogar rápidamente multitud de ebooks

Manuel Naranjo naranjo.manuel en gmail.com
Mar Feb 19 23:52:53 ARDT 2008


Juan Manuel,
> Voy a especificar más.
> Cree una base de datos pequeñita y revisé el script, quedándome algo así
>
> #!/bin/bash
> ARCHIVOS=$( tree -f -A -i ~/Fake\ database )
>
> for CAMPO in $ARCHIVOS; do
>    LETRA=$(echo $CAMPO | awk -F/ '{print $2}' )
>    DIRECTORIO=$(echo $CAMPO | awk -F/ '{print $3}' )
>    ARCHIVO=$(echo $CAMPO | awk -F/ '{print $4}' )
>    EXTENSION=$(echo $ARCHIVOS | awk -F\. '{print $3}' )
>    AUTOR=$(echo $ARCHIVOS | awk -F\- '{print $1}' )
>    OBRA=$(echo $ARCHIVOS | awk -F\- '{print $2}' | sed 's/$EXTENSION//' )
>    echo "$AUTOR ; $OBRA ; $EXTENSION ; $CAMPO"
> done
Perfecto.

> Uno de los problemas es el de obtener el path del archivo junto con el
> nombre del autor al hacer
>
> tree -f -A -i Fake\ database/ | awk -F\- '{print $1}'
>
> Por ejemplo /Fake database/Letra F/Fromm Erich/ en vez de /Fromm Erich
>
> /Lo mismo sucede para obtener el nombre de las obras, que me dan el
> nombre y la extensión, y no solo el nombre. ¿Hay alguna manera de
> poner un segundo delimitador, o alguna otra solución?
No termino de entender bien cuál es tu problema. Una de esas tenes que
usar basename que te va a dar el nombre de un archivo o directorio,
ejemplos:
[manuel en manuel-laptop:~]$ basename /home/manuel/
manuel
[manuel en manuel-laptop:~]$ basename /home/manuel/youtubewget.sh
youtubewget.sh

Espero eso te ayude un poquito más. Pero vas por buen camino :D. Una de
esas podrías reemplazar muchos pipes  (la barra parada) por llamadas a
basename, pero eso ya es más avanzado.

Saludos,
Manu


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