Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > es.comp.os.linux.misc > #62
| From | Ricardo Palomares Martinez <rpm.NOADS@proyectonave.es> |
|---|---|
| Newsgroups | es.comp.os.linux.misc |
| Subject | Re: Ayuda para crear un script |
| Date | 2020-01-24 22:03 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <r0fm3c$d4k$2@gioia.aioe.org> (permalink) |
| References | <06cc63d4-ff25-429d-a2ca-c2fecf382d3d@googlegroups.com> |
El 19/01/20 a las 19:53, xabih escribió:
> Hola.
>
> Busco ayuda para crear un script que haga lo siguiente:
>
> Tengo un conjunto de archivos jpg en distintos subdirectorios dentro de un directorio “reveladas”.
>
> Tengo otro conjunto de archivos jpg todos en un único directorio “reveladas_HR”
>
> Se trata de las mismas imágenes con la diferencia de que las primeras están a menor resolución.
>
> Los primeros 21 carácteres de una misma foto son los mismos, esto es, por ejemplo para una foto dada tengo:
>
> ../reveladas/[subdirectorio]/201712291421_IMG_5380[descripcion].jpg <- Foto en baja res.
> ../reveladas_HR/201712291421_IMG_5380.jpg <- foto en alta res.
>
> Lo que quiero hacer es:
>
> En un tercer directorio “reveladas_new” crear la misma estructura de subdirectorios que hay dentro de “reveladas” con las mismas fotos pero en alta resolución cuando existan en “reveladas_HR”, si no, copiar las de baja resolución.
>
> Además de copiar la foto en alta resolución, hay que modificarle el nombre para que tenga el mismo que la de baja resolución (con la parte [descripcion] si la tiene) y copiarle algunos tags de los metadatos EXIF de la de baja resolución a la de alta resolución, esto ultimo lo hago con un comando de exiftools.
>
> Espero haberlo explicado bien, ¿lo veis factible?
Te copio el script porque el grupo de noticias no lo admite como
adjunto. Este script hace algo mucho más sencillo, renombra archivos y
los renumera (básicamente, lo uso para cambiar la hora que suelen
añadir las cámaras a un contador). Pero usa un bucle, guarda
cuasi-patrones de nombre de archivo en variables y luego las usa,
modificando el nombre. Te puede dar algunas ideas.
HTH
------------------------------
#!/bin/bash
#
# This script renames files in a batch way, giving the opportunity to use
# different numerals for the target than the ones used in the source
#
TEST=$1
if [ -z $TEST ]; then
echo "Formato de llamada: ren_photos.sh [-t] PREFIJO_ORIG
PREFIJO_DEST INICIO [CUENTA]"
echo "Ejemplo: ren_photos.sh 100_10 20100101_00 1 9 convertirá
archivos JPG con el"
echo " formato de nombre 100_1001.JPG, 100_1002.JPG... a
20100101_001.JPG,"
echo " 20100101_002.JPG, etc. hasta un máximo de 9"
exit 0
fi
if [ $TEST = "-t" ]; then
echo "Ejecución en modo test"
SOURCE_PATTERN="$2*"
TARGET_PATTERN=$3
TARGET_START=$4
COUNTER=$5
else
SOURCE_PATTERN="$1*"
TARGET_PATTERN=$2
TARGET_START=$3
COUNTER=$4
fi
if [ -z $COUNTER ]; then
COUNTER=1000
fi
echo "Vamos a convertir archivos del tipo $SOURCE_PATTERN a
$TARGET_PATTERN"
echo "con el numerador $TARGET_START"
for SOURCE in $SOURCE_PATTERN
do
EXT=`basename $SOURCE | cut -d. -f2 -`
TARGET="${TARGET_PATTERN}${TARGET_START}.${EXT}"
echo "Trataremos $SOURCE y lo convertiremos en $TARGET"
if [ $TEST != "-t" ]; then
mv $SOURCE $TARGET
fi
(("TARGET_START=${TARGET_START} + 1"))
(("COUNTER=${COUNTER} - 1"))
if [ $COUNTER -eq 0 ]; then
exit 0
fi
done
------------------------------------
Back to es.comp.os.linux.misc | Previous | Next — Previous in thread | Find similar
Ayuda para crear un script xabih <xhabih@gmail.com> - 2020-01-19 10:53 -0800 Re: Ayuda para crear un script "Carlos E.R." <robin_listas@es.invalid> - 2020-01-19 22:20 +0100 Re: Ayuda para crear un script Gonzalo Pérez de Olaguer Córdoba <salo@gpoc.es> - 2020-01-20 00:18 +0100 Re: Ayuda para crear un script Ricardo Palomares Martinez <rpm.NOADS@proyectonave.es> - 2020-01-24 22:03 +0100
csiph-web