Kép EXIF adataiból fájlátnevezés
Kellemetlen amikor sok képet kezelve ilyeneket látunk a mappákban: DSCF292XX.jpg. Jó volna tudni mikor készültek. Nem beszélve arról, ha rendszerezni is szeretnénk. Ezt megelégelve írtam egy scriptet, mely kiolvassa az exif adatokat és átnevezi ÉvHónapNapSorszám.jpg formában.
Az év első két számjegye leszedve, így is elég hosszú:)
A sorszám pedig az adott napon készült képek számát adja. 999-ig van felkészítve. Így pl. 070728016.jpg = 2007.07.28. napján készült 16. kép.
A galáriában lévő képek nagyrésze már így került fel. Nem kell a fájlban turkálni exif adatok után. Elég csak rápillantani a fájlnévre és máris tudni mikor készült.
kepexif.sh
#!/bin/bash I=0 naptart=0 kepekszama=0 chmod 644 ./* for FILE in `ls -1 *.jpg` ;do evcheck=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $1'} | sed 's/0/ /g' | awk {'print $1'}) ev=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $1'} | sed 's/20//g') honap=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $2'}) nap=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $3'}) IDO=$ev$honap$nap # 2xxx ev ellenorzese if ! [ "$evcheck" = "2" ]; then echo "!!! HIBÁS EXIF DÁTUM: $FILE !!!" fi # szamlalo if [ "$naptart" = "$nap" ]; then let I=I+1 SZAM=$(printf %03d $I) else I=0 SZAM=$(printf %03d $I) fi # atnevezo if ! [ "$IDO" = "0" ]; then let kepekszama=kepekszama+1 mv ./$FILE ./$IDO$SZAM.jpg echo $kepekszama. $FILE - $IDO$SZAM.jpg naptart=$nap fi done for FILE in `ls -1 *.JPG` ;do evcheck=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $1'} | sed 's/0/ /g' | awk {'print $1'}) ev=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $1'} | sed 's/20//g') honap=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $2'}) nap=$(exiv2 $FILE | grep timestamp | awk {'print $4'} \ | sed 's/:/ /g' | awk {'print $3'}) IDO=$ev$honap$nap # 2xxx ev ellenorzese if ! [ "$evcheck" = "2" ]; then echo "!!! HIBÁS EXIF DÁTUM: $FILE !!!" fi # szamlalo if [ "$naptart" = "$nap" ]; then let I=I+1 SZAM=$(printf %03d $I) else I=0 SZAM=$(printf %03d $I) fi # atnevezes if ! [ "$IDO" = "0" ]; then let kepekszama=kepekszama+1 mv ./$FILE ./$IDO$SZAM.jpg echo $kepekszama. $FILE - $IDO$SZAM.jpg naptart=$nap fi done
Címkék