Stranica: 1/2.

[Bash] skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 10:28
Postao/la calisto053
Nemam iskustva s terminalom, tek sam počeo hvatati osnove uz vašu pomoć, a već imam neke ideje... :facepalm
http://www.linuxzasve.com/naucite-radit ... enom-retku

Pokušavam razvrstati po datumira veći broj slika koje nalaze u nekom folderu, npr. ~/Desktop/slike. To znači sve slike istog datuma u zasebnom folderu (YY-MM-DD). Dosta sam googlao; uglavnom se predlažu programi (F-Spot, Shotwell, DigiKam, Picasa i sl.) koji nude samo pregled.
Zato mi je pala na pamet (naizgled) jednostavna bash skripta - ideju sam dobio ovdje:
http://www.linuxquestions.org/questions ... te-722733/

Stalno negdje grješim u koracima, pa molim pomoć.... szbunjen
Hvala!

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 16:16
Postao/la jjj
Kojim koracima? Stavi kod negdje.

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 18:12
Postao/la calisto053
Pokušavam prilagodit sebi, ali ne ide. Zapinje na jhead (štogod to bilo?)....

Kod: Označi sve

#!/bin/bash
#
#
Location="~/Desktop/fotografije/"
Destination="~/Desktop/fotografije/"
echo 
echo 

############
# rename all image files in $Location
jhead -n%Y/%m/%d/%f *.jpg

###########
# Sort files into folders using $CharFromName letters of the file name
#
ls $Destination | while read file; do
 # extract first $CharFromName characters from filename
 FolderDate=${file:0:$CharFromName}
 # create directory if it does not exist
 test -d $Destination/$FolderDate || mkdir $Destination/$FolderDate
 # move the current file to the destination dir
 mv -v $Destination/$file $Destination/$FolderDate/$file
done

##########
# move sorted files into photo library
#mv -v $Destination/* $Destination/ 

##########
# End notification
echo "End location: $Destination"
echo 
read -p "Press enter to close this window…"

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 20:58
Postao/la simke
neznam šta je jhead ali možda ovako radi

jhead -n %Y/%m/%d/%f *.jpg

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 21:05
Postao/la calisto053
cinober je napisao/la:neznam šta je jhead ali možda ovako radi

jhead -n %Y/%m/%d/%f *.jpg
ne radi, sve sam izmjenio...

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 21:08
Postao/la simke
si instalirao jhead

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 21:11
Postao/la calisto053
Rješio! Još sam malo guglao i našao rješenje! Netko je već ranije napravio istu stvar, pa sam copy-paste i malo izmjenio prema komentarima:
http://www.linuxjournal.com/content/tec ... hotos-date

Kod: Označi sve

#!/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.

for fil in *  # Also try *.JPG
do
    datepath="$(identify -verbose $fil | grep DateTimeOri | awk '{print $2 }' | sed s%:%/%g)"
    if ! test -e "$datepath"; then
        mkdir -pv "$datepath"
    fi

    mv -v $fil $datepath
done
Skriptu treba kopirati u folder u kojem se nalaze fotografije i zatim ju pokrenuti. Sve radi, samo treba čekati par sekundi. Slike se razvrstavaju po datumu kada su nastale, a ne kada su modificirane (isprobao!). Jedina je mana što se razvrstavaju samo slike, ali ne i filmovi (avi). Može tu mala pomoć?

Re: bash skripta za razvrstavanje fotografija

Postano: 26 ožu 2012, 21:22
Postao/la simke
kladim se da nisi imap jhead instaliran.

Re: bash skripta za razvrstavanje fotografija

Postano: 27 ožu 2012, 11:17
Postao/la calisto053
Dobro se kladiš!
Instalirao i krenuo opet, ali ne ide.... Sad imam dvije skripte: stara (sa jhead) koja samo stvara brljage:

Kod: Označi sve

#!/bin/bash
#
#
Location="~/Desktop/fotografije/"
CharFromName=4
echo 
echo 

############
# rename all image files in $Location
# FolderDateDD-HHMMSS.ext
jhead -n%Y/%m/%d/%f *

###########
# Sort files into folders using $CharFromName letters of the file name
#
ls $Location | while read file; do
 # extract first $CharFromName characters from filename
 FolderDate=${file:0:$CharFromName}
 # create directory if it does not exist
 test -d $Location/$FolderDate || mkdir $Location/$FolderDate
 # move the current file to the destination dir
 mv -v $Location/$file $Location/$FolderDate/$file
done

##########
# move sorted files into photo library
#mv -v $Locaion/* $Location/$FolderDate

##########
# End notification
echo 
read -p "Press enter to close this window…"

... i nova skripta koja dobro razvrstava fotografije, ali ne razvrstava filmove:

Kod: Označi sve

#!/bin/sh

# Goes through all jpeg files in current directory, grabs original date from each
# and sorts them into subdirectories according to the date
# Creates subdirectories corresponding to the dates as necessary.

for fil in *  # Also try *.JPG # # Also try *.AVI
do
    datepath="$(identify -verbose $fil | grep DateTimeOri | awk '{print $2 }' | sed s%:%/%g)"
    if ! test -e "$datepath"; then
        mkdir -pv "$datepath"
    fi

    mv -v $fil $datepath
done

Re: bash skripta za razvrstavanje fotografija

Postano: 27 ožu 2012, 11:23
Postao/la simke
cinober je napisao/la:neznam šta je jhead ali možda ovako radi

jhead -n %Y/%m/%d/%f *.jpg