El 19/01/20 a las 19:53, xabih escribió:
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
------------------------------------