Lok escribió:el script en si...
pon las opciones que mas prefieras para los convert y ya estara listo el script
#!bin/bash
#pon aqui debajo,el directorio donde tienes las fotos, sin barra al final
RUTA=~
for LISTA in $(ls -1 $RUTA/*.jpg | sed 's/\(.*\)\..*/\1/')
do
convert $RUTA/$LISTA.jpg $LISTA_s.jpg
convert $RUTA/$LISTA.jpg $LISTA_m.jpg
convert $RUTA/$LISTA.jpg $LISTA_b.jpg
done
No funciona y no me lo explico
Primero una corrección, hay que declarar la variable LISTA (ya lo he hecho), pero no funciona.
Lo he dejado así, para ejecutarlo desde la misma carpeta (ya probé con la ruta y me da el mismo resultado)
#!bin/bash
LISTA=1
for LISTA in $(ls -1 *.jpg | sed 's/\(.*\)\..*/\1/')
do
convert $LISTA.jpg -resize 100x100 $LISTA_s.jpg
convert $LISTA.jpg -resize 200x $LISTA_m.jpg
convert $LISTA.jpg -resize 150x150 $LISTA_h.jpg
done
Y no hace nada.
Encabezonado en que me funcione he escrito este otro script:
#!bin/bash
ls > listadoA.txt
tr -d [a-z][A-Z].<listadoA.txt >listado.txt
LINEA="1"
while read LINEA
do
convert $LINEA.jpg -resize 100x100 $LINEA_s.jpg
convert $LINEA.jpg -resize 200x $LINEA_m.jpg
convert $LINEA.jpg -resize 150x150 $LINEA_h.jpg
done < listado.txt
rm listadoA.txt
rm listado.txt
y tampoco funciona. Ninguno de los dos me tira ningún error, ni por consola ni desde nautilus.
He probado los comandos convert a "mano" y funcionan perfectamente.
Voy a probar metiendo algun "echo" para ver que va pasando.
SOLUCIONADO
Ya lo tengo
![sonrisa [sonrisa]](/images/smilies/nuevos/risa_ani1.gif)
:
#!bin/bash
RUTA=/home/XXXXXXXXXX/ScripsFotosWEB/img
LISTA="1"
for LISTA in $(ls -1 $RUTA/*.jpg | sed 's/\(.*\)\..*/\1/')
do
echo "$LISTA"
convert $LISTA.jpg -resize 100x100 $LISTA'_s'.jpg
convert $LISTA.jpg -resize 200x $LISTA'_m'.jpg
convert $LISTA.jpg -resize 150x150 $LISTA'_h'.jpg
done
Faltaban los acentos en el añadido al nombre (menuda tonteria).
Además no hay que poner la variable $RUTA antes del nombre de la foto a convertir, ya lo lleva incluido (bendito echo).
Lo seguiré modificando para que me pregunte la ruta y me convierta las imágenes en jpg (las que estén en otro formato), pero el cuerpo principal ya está resulto.
Os dejo tambien el que yo escribí, que se apoya en dos archivos txt. El resultado es igual de bueno, aunque es menos elegante, pero uso la orden "tr" que no conocía:
#!bin/bash
RUTA=/home/XXXXXXXXXX/ScripsFotosWEB/img
ls $RUTA/> listadoA.txt
tr -d [a-z][A-Z].<listadoA.txt >listado.txt
LINEA="1"
while read LINEA
do
convert $RUTA/$LINEA.jpg -resize 100x100 $RUTA/$LINEA'_s'.jpg
convert $RUTA/$LINEA.jpg -resize 200x $RUTA/$LINEA'_m'.jpg
convert $RUTA/$LINEA.jpg -resize 150x150 $RUTA/$LINEA'_h'.jpg
done < listado.txt
rm listadoA.txt
rm listado.txt
Muchas gracias a todos y espero que, por lo menos, os haya "descubierto" la orden tr (para modificar un archivo de texto)