Fórum Ubuntu CZ/SK
Ostatní => Archiv => Téma založeno: Speedved 16 Září 2006, 20:05:30
-
Rád bych přejmenoval fotky podle informací z EXIFu.
Ve win jsme používal tento formát YYYY-MM-DD-### (### - pořadové číslo fotky v daném dni) a rád bych v tom pokračoval.
Vím že gThumb umí přejmenovat fotky na základě EXIFu, ale nepodařilo se mi jej přinutit k tomuto formátu.
Pod KDE existuje GwenRename a ten by to měl umět. Já ale používám Gnome :(
-
Ja som mal podobny problem a hladal som po celom nete.
Aj na toto forum som pisal: http://forum.ubuntu.cz/viewtopic.php?id=1441
ale nikto mi neporadil, takze som usudil, ze jedine GwenRename dokaze to co chcem.
-
soubor exif_rename.sh
#!/bin/bash
# rename files from exif info
# required: jhead, sed, grep, dirname, mv
# johniez, http://johniez.com
# init version, no safety controls - backup your data before ;)
PHOTO_COUNT=0
LAST_DATE=0
if [ $# -lt 1 ]; then
echo "Spatne pouziti, chybi argumenty"
echo "Usage: $0 file1.jpg file2.jpg .."
exit 2
fi
for i in $*; do
NEW_DATE=`jhead "$i" | grep 'File date' | sed -e 's/.*: \(.*\) .*$/\1/' -e 's/:/-/g'`
if [ "$NEW_DATE" == "$LAST_DATE" ]; then
PHOTO_COUNT=$((PHOTO_COUNT+1))
else
PHOTO_COUNT=1
LAST_DATE=$NEW_DATE
fi
DIR=`dirname "$i"`
if [ $PHOTO_COUNT -lt 10 ]; then
mv "$i" "${DIR}/${NEW_DATE}-00${PHOTO_COUNT}.jpg"
elif [ $PHOTO_COUNT -lt 100 ]; then
mv "$i" "${DIR}/${NEW_DATE}-0${PHOTO_COUNT}.jpg"
else
mv "$i" "${DIR}/${NEW_DATE}-${PHOTO_COUNT}.jpg"
fi
done
-
soubor exif_rename.sh
#!/bin/bash
# rename files from exif info
# required: jhead, sed, grep, dirname, mv
# johniez, http://johniez.com
# init version, no safety controls - backup your data before ;)
PHOTO_COUNT=0
LAST_DATE=0
if [ $# -lt 1 ]; then
echo "Spatne pouziti, chybi argumenty"
echo "Usage: $0 file1.jpg file2.jpg .."
exit 2
fi
for i in $*; do
NEW_DATE=`jhead "$i" | grep 'File date' | sed -e 's/.*: \(.*\) .*$/\1/' -e 's/:/-/g'`
if [ "$NEW_DATE" == "$LAST_DATE" ]; then
PHOTO_COUNT=$((PHOTO_COUNT+1))
else
PHOTO_COUNT=1
LAST_DATE=$NEW_DATE
fi
DIR=`dirname "$i"`
if [ $PHOTO_COUNT -lt 10 ]; then
mv "$i" "${DIR}/${NEW_DATE}-00${PHOTO_COUNT}.jpg"
elif [ $PHOTO_COUNT -lt 100 ]; then
mv "$i" "${DIR}/${NEW_DATE}-0${PHOTO_COUNT}.jpg"
else
mv "$i" "${DIR}/${NEW_DATE}-${PHOTO_COUNT}.jpg"
fi
done
Dávka přejmenuje pouze soubory které jsou předány v parametru této dávce.
Já bych potřeboval aby se přejmenovali všechny *.jpg v adresáři v kterém je dávka volána.
Pokud mi mnělo toto stačit tak se omlouvám, mám linux pouze chvilku. Byl jsem rád že jsem to nějak rozběh. :)
Byl to můj první dávkovy soubor v linuxu :)
Poraďte mi prosím kam, s jakými právy a případně jak se dávky mají ukládat aby se daly spustit z libovolného adresáře a ne jenom z toho v kterém jsou umístěny.
Článků o bashy jsem našel spoustu. Je v nich ale popisována tvorba kódu, ale tyto informace jsem nějak postrádal. A nebo jsme špatně hledal :)
-
prekopiruj si tenhle soubor do /bin (cp script.sh /bin) a nastav mu prava (chmod 755)
pro vsechny soubory v adresari staci toto: script.sh *.jpg
-
Jo jo jo. :D
Tak to je přesně ono. :)
Přesně to funguje, tak jak má.
-
Přejmenovat fotky umí například program PPSee http://pponec.net/ppsee/index_cs.htm ,
který lze spustit přímo zde: http://pponec.net/ppsee/webstart/ppsee.jnlp .