Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > es.comp.os.linux.misc > #62

Re: Ayuda para crear un script

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>

Show all headers | View raw


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 | NextPrevious in thread | Find similar


Thread

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