Steen Suder wrote:
Min far har fået mange kopier, mange steder, med de samme foto, vil dit
script kunne finde i sub-dirs også?
Kan jeg lokke dig til at udvide det med funktion til at lægge dubletter et
andet sted?
> On 22-10-2011 15:14, Steen Suder wrote:
>> Jeg vil sortere billeder fra diverse kameraer ud i directories med år og
>> måned (baseret på Exif-data).
>>
>> Nemt, men scriptet skal håndtere at en destinationsfil findes.
>> Det kan gøres med mv's backup-funktion, men siden fil-extensions ikke er
>> et Unix-koncept, får man nogle - i flere sammenhænge - ubrugelige
>> extensions.
>>
>> Findes der en move-kommando, der kan håndtere dette?
>>
>
> Mit bedste bud indtil videre er herunder.
> Jeg er ikke programmør
>
> #!/bin/sh
>
> # Goes through all jpeg files in current directory, grabs date from each
> # and sorts them into subdirectories according to the date
> # Creates subdirectories corresponding to the dates as necessary.
>
> EXPECTED_ARGS=1
> E_BADARGS=65
>
> if [ $# -ne $EXPECTED_ARGS ]
> then
> echo "Usage: `basename $0` {arg}"
> exit $E_BADARGS
> fi
>
> destroot=$(echo $1 | sed "s/\/*$//")
>
> for fil in `find -maxdepth 1 -iname *.jpg -exec basename '{}' \; | sort`
> do
> datepath="$(identify -verbose $fil | grep DateTimeOri | cut
> -b28-37| cut -d: -f1-2 | sed s%:%/%g)"
>
> if ! test -e "$destroot/$datepath"; then
> mkdir -pv "$destroot/$datepath"
> fi
>
> num=1;
> newfil=$fil
> while [ -f "$destroot/$datepath/$newfil" ]
> do
> if cmp -s $fil $destroot/$datepath/$newfil; then
> break
> else
> newfil=$(echo $fil | sed
> "/jpe*g/Is/\(.*\).\(jpe*g\)/\1_$num.\2/I")
> num=`expr $num + 1`
> fi
> done
> mv -v $fil $destroot/$datepath/$newfil
>
>
> done
>
> Ovenstående gør hvad jeg vil have.
>
>
--
Med venlig hilsen
Ivar Madsen