- zhans blogja
- A hozzászóláshoz be kell jelentkezni
- 1060 megtekintés
Hozzászólások
Vázlat:
SCRIPTEM='
BEGIN {
...
}
...
END {
...
}'
cd képeim
while read; do
if [ -f "$REPLY" ]; then
DIRNAME=`identify -verbose "$REPLY" | awk "$SCRIPTEM"`
fi
mkdir -p "$DIRNAME"
mv "$REPLY" "$DIRNAME"
done < <(ls -1)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Próbáld exiftool-lal.
- A hozzászóláshoz be kell jelentkezni
Vagy jhead-del. Mármint felhasználni a lehetőségeit a szkriptedben.
- A hozzászóláshoz be kell jelentkezni
Jaj, kissé álmosn írtam, then helyett do-t írtam, lehagytam a fi-t... Javítva.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ez valami hasonlot csinal - az exif-ben van meg egy rakat info de en csak a datumot hasznalom...
#!/bin/bash
# Tool to organise photos based on EXIF data
function DNG_JPG {
mkdir DNG;
mkdir JPG;
mv *.dng DNG;
mv *.jpg JPG;
}
function Do_The_Rename {
Folder=$1;
AbsPath=`pwd`;
File=$2;
Keyword=${Folder:5};
pic_name=`echo "$File" |sed s/" "/_/g | xargs basename`
pic_name=${pic_name%.jpg}
if [ -z `exif -t DateTimeOriginal "$File"` >/dev/null 2>&1 ] ; then
TargetFile="NOEXIF-$Keyword-$pic_name"
else
exif -t DateTimeOriginal "$File" |grep Value > exif.$$
year=`cut -b 10-13 "exif.$$"`
month=`cut -b 15-16 "exif.$$"`
day=`cut -b 18-19 "exif.$$"`
TargetFile="$year-$month-$day-$Keyword-$pic_name"
fi
echo $Folder $pic_name $TargetFile;
if [ -f "$pic_name.dng" ]; then
echo "DNG"
mv "$pic_name.dng" "$TargetFile.dng"
fi
mv "$pic_name.jpg" "$TargetFile.jpg"
}
for i in *; do
if [ -d $i ]; then
cd $i;
rename 'y/A-Z/a-z/' *.[jJ][pP][gG]
rename 'y/A-Z/a-z/' *.[dD][nN][gG]
for j in *.jpg; do
Do_The_Rename $i $j;
done;
fi;
cd ..;
done
- A hozzászóláshoz be kell jelentkezni
Két bajom van vele. Néhány helyen lehagytad az idézőjeleket, így ha szóköz van a file nevében, az több paraméterre esik szét a szóközök mentén. A másik, hogy temporary file-t írsz a dátumnak, holott változóban egyszerűbb volna tárolni:
tmp=`exif -t DateTimeOriginal "$File" | grep -F Value`
year=`cut -c 10-13 <<<"$tmp"`
Ja, meg nem byte-ra, hanem karakterre keresünk. Gondolj például a unicode UTF-8 implementációjára.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Jogos - Javitom...
Mondjuk en egyszeruen hasznalom - eloszor vizualisan szetvalogatom a kepeket - amolyan blockokban valami vizualis kepnezegetovel pl: 2014_Strandolas - konyvtarba aztan raengedem a scriptet. A kepek nyers pic000456.jpg|dng formatumban vannak - ahogy az SDkartyarol lejonnek, u h szerencsere a szokoz nem okozott gondot. A masik problema valsziuleg azert nem mert kerulom az ekezetes karakterek stb hasznalatat(evvan megszokas, es sok ev idegen angol, nemet gepek es rendszerek elott)...
Koszi az eszreveteleket
- A hozzászóláshoz be kell jelentkezni