Me he conseguido un programilla muy sencillo para Linux para eliminar el espacio vacío de las ROMs de Nintendo DS:
http://blog.dev-scene.com/ratx/archives/category/nds/
El programa se ejecuta desde la consola a modo de comando, pero no permite aplicarlo a más de un archivo a la vez, por lo que enseguida me puse manos a la obra a hacer un script para solucionar este problema y poder eliminar el espacio de todas las roms que hay un determinado directorio. El programa (trim) sólo tiene un parámetro y es el archivo a "truncar" (pongamos
mario.nds), y crea un archivo nuevo reducido
mario.trim.nds dejando el original intacto. Este es el script que he hecho:
#!/bin/bash
trim="/usr/local/bin/trim"
if [ ! -f $trim ]; then
echo "Asegúrese de que 'trim' esta instalado en:"
echo $trim | sed s/trim//g
echo
echo "http://blog.dev-scene.com/ratx/archives/category/nds/"
exit
fi
for i in $(find *.nds | sed s/.nds//g); do
echo "* * * $i.nds * * *"
trim "$i.nds"
if [ -f "$i.trim.nds" ]; then
rm "$i.nds"
mv "$i.trim.nds" "$i.nds"
fi
done
exit
El tema es que el script funciona perfectamente siempre y cuando el archivo no tenga espacios en su nombre. Imaginemos que por ejemplo el único archivo a procesar es
New Super Mario Bros.nds, entonces en cada iteración me procesaría:
- New
- Super
- Mario
- Bros.nds
La pregunta es, ¿como se cambia los separadores por defecto (espacios/intros) para dejar sólo los intros (\n)? Sé de muchos comandos (por ejemplo el awk) que traen su propia opción para cambiar el separador entre campos. Lo que no sé es como cambiar los separadores de forma global a un script. Supongo que habrá alguna variable de entorno para esto, pero no sé muy bien cual es. ¿Alguien sabe algo?
Muchas gracias de antemano