Dazu nimmt man das folgende Bash Skript:
1 #!/bin/bash
2 SAVEIFS=$IFS
3 IFS=$(echo -en "\n\b")
4 for f in $(find /mnt/data/PicasaBilder | grep -i jpg); do
5 echo $f;
6 keywords="`exiftool -Keywords $f 2> /dev/null | sed -e 's/Keywords[ ]*: //'`";
7 if [ -n $keywords ] ; then
8 IFS=","
9 for k in $keywords; do
10 echo $k;
11 k="`echo $k | sed -e "s/^ //"`";
12 if [ ! -e "/mnt/data/Bilder/Tags/$k" ] ; then
13 mkdir "/mnt/data/Bilder/Tags/$k";
14 echo Created "/mnt/data/Bilder/Tags/$k";
15 fi;
16 ln -s "$f" "/mnt/data/Bilder/Tags/$k/";
17 done;
18 IFS=$(echo -en "\n\b")
19 fi;
20
21 done;
Was passier hier?
In Zeile 3 wird der s.g. input field separator so angepasst, dass auch Dateinamen mit Leerzeichen im Namen von der for Schleife verstanden werden, dann durchlaufen wir alle jpg Dateien in den Unterverzeichnissen.
Zeile 6 extrahiert die Keywords. Hierbei war das exiftool das einzige shell taugliche Programm welches mir die "Keywords" lieferte (zu finden im Paket libimage-exiftool-perl).
Wenn es Keywords gibt (gefunden hier) dann den input field separator auf das Komma setzen (kennt jemand eine Möglichkeit den auf ", " (KommaLeerstelle) zu setzen?)
und die unnötige Leerstelle entfernen (Zeile 11).
Zeilen 12 bis 15 prüfen ob das Verzeichnis existiert und legen es ggf. an.
Danach wird nur ein Link erstellt.
Nicht Vergessen, den input field separator wieder richtig zu setzen (Zeile 18) .
Es gibt bestimmt noch Updates, aber das war es für heute.
Keine Kommentare:
Kommentar veröffentlichen