Compare folders met Automator
28 juni 2012 - 14:18   
geplaatst door: hartgas
hallo macfreak,

ik heb als fotograaf een hele tijd heel fijn gewerkt met een module voor automator die voor folders voor me vergelijkt.
ik kan me heel goed voorstellen dat er andere fotografen zijn die dit probleem ook getackeld hebben of dat graag zouden willen.

wat automator voor me deed was het volgende:
ik schiet mijn beelden in zowel jpg als cr2.
splits deze uit in 2 verschillende folders die ik ook 'jpg' en 'cr2' noem
maak dan een selectie van de jpg die ik in een submap stop die '1e' heet dan liet ik automators 'compare folder' erop los.
die vergeleek map 1 ('1e') met map 2 ('cr2') en liet dan de files die hetzelfde heten (extensie daargelaten) uit map 2 en verhuisde die naar een andere map 'die ik 'final 1 ' noem.

zodoende kon ik snel selecties maken en deze automatorfunctie zocht snel de bijbehorende cr2 voor me erbij zodat ik die in lightroom kan laden.

nu sinds de komst van 'lion' doet deze functie het niet meer.
ik heb gezocht naar dergelijke programma's maar doen allemaal niet zoals ik boven beschreven heb.
willen vaak syncen of kunnen niet verhuizen.

hoor je graag

~joris

(wil er best een sceenshot van laten zien maar weet en zie niet hoe attachements /plaatjes bijtevoegen)
Compare folders met Automator
28 juni 2012 - 18:15    reactie #1
geplaatst door: Pieterr
Is een shellscript dat precies hetzelfde doet ook goed voor je?
"One experiment is worth a thousand expert opinions."
Compare folders met Automator
1 juli 2012 - 16:26    reactie #2
geplaatst door: Pieterr
Ik heb een workaround voor je probleem gevonden, denk ik.

Het probleem is: de CompareFolder action geeft oude stijl paden terug (met dubbele punten). Daar kunnen bljkbaar niet alle scripts in Lion goed mee omgaan. Als je eerst een kopie maakt van de resultaten van CompareFolders (mbv Duplicate Finder Items) en die vervolgens verplaatst naar je Final map dan gaat het wel goed. Enige probleem is dan alleen nog dat de namen "copy" in hun naam hebben staan maar dat kun je oplossen met een extra stap (Rename Finder Items).


http://i.imgur.com/DaYyW.jpg

Compare folders met Automator

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
1 juli 2012 - 23:52    reactie #3
geplaatst door: hartgas
pieterr je bent een held!!

een simpele oplossing maar kom er maar eens op.
ik heb gezocht en vanalles geprobeerd, heel veel verschillende compare en sync programma's geprobeerd die allemaal niet deden wat ik wilde.
renamen kan dus ook goed via automator, wist ik niet, ik gebruik naar volle tevredenheid name mangler.

het enige is dat de automator in duplicate-mode een stuk langzamer is dan de move files mode, begrijpelijk.

nogmaals super veel dank, je hebt mijn leven weer een heel stuk gemakkelijker gemaakt.
~joris

Compare folders met Automator
2 oktober 2014 - 15:56    reactie #4
geplaatst door: hartgas
hoi pieter en anderen,

je optie die je in een vorig bericht opperde deed het geweldig.
maar nu ge-upgrade naar mavericks krijg ik weer een foutmelding.
misschien wil je er nog eens over buigen.

groente uit den haag
~joris

Compare folders met Automator
2 oktober 2014 - 17:35    reactie #5
geplaatst door: Pieterr
Hoi Joris, ik kom hier pas in het weekend aan toe, vermoed ik.
Stuur even een PB als je na het weekend nog niets gehoord hebt.  
Als iemand anders je ondertussen kan helpen is dat natuurlijk ook prima.
"One experiment is worth a thousand expert opinions."
Compare folders met Automator
5 oktober 2014 - 13:26    reactie #6
geplaatst door: Pieterr
Hoi Joris,

Ik heb even het Automator script opnieuw gemaakt op mijn MBP met Lion, en dat werkte nog/weer.
De bedoeling is dat je de map vergelijkt waar al je RAW bestanden in staan ('cr2') met de map waar je JPG selectie in staat ('1e').

Het enige probleem waar ik tegen aan liep nadat ik de Workflow had overgezet naar de Mac mini met Mavericks, was dat de "Compare Folders" Action ontbrak op mijn Mavericks systeem. Dit is geen standaard Apple action, maar eentje die je apart moet installeren. Downloaden kan van:
http://automatorworld.com/archives/compare-folders/

Met deze Action geinstalleerd werkt de Automator workflow ook onder Mavericks.


Plaatje 1: de beginsituatie
Plaatje 2: selecteer de juiste mappen in de Automator workflow
Plaatje 3: het resultaat; de 'final' map is gevuld
Plaatje 4: check of je de 'Compare Folder' Action hebt geinstalleerd


"One experiment is worth a thousand expert opinions."
Compare folders met Automator
25 februari 2015 - 14:30    reactie #7
geplaatst door: Robert

Citaat
Pieterr om 18:15, 28-06-2012
Is een shellscript dat precies hetzelfde doet ook goed voor je?

Ik had ook interesse in deze oplossing in Automator, maar die blijkt nogal traag (natuurlijk door het kopiëren) en loopt daardoor met grotere aantallen zelfs vast.

Daarom de vraag aan Pieterr: heb jij een shellscript hiervoor?
Joris en ik (heb ik contact mee gehad) houden ons warm aanbevolen! :worship:).

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
25 februari 2015 - 18:25    reactie #8
geplaatst door: Pieterr
Ik zit nu niet achter mijn Mac maar zoiets zou moeten werken:



Omdat de forumsoftware de letterlijke code vernaggelt, maar even in een plaatje.

(Bewerkt door Pieterr om 18:29, 25-02-2015)

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
25 februari 2015 - 23:16    reactie #9
geplaatst door: Robert
Kijk, daar worden we blij van..!    :worship:

Ik ga het morgen uittesten, voor de zekerheid: vraagt dit script om welke mappen 1e en CR2 het gaat? Of moet je eerst die mappen in Terminal slepen en de locaties dan in dit script plakken?

Heb zelf niet veel ervaring met Shell scripts, en hoop natuurlijk niet dat dit script alle mappen 1e en CR2 in m'n Mac onderhanden gaat nemen...  :wink:

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
25 februari 2015 - 23:52    reactie #10
geplaatst door: Pieterr
Citaat
Robert om 23:16, 25-02-2015
Ik ga het morgen uittesten, voor de zekerheid: vraagt dit script om welke mappen 1e en CR2 het gaat? Of moet je eerst die mappen in Terminal slepen en de locaties dan in dit script plakken?

Nee dit script vraagt helemaal niks. Dit is slechts de 'core' van het script, de code die het echte werk doet. Op de eerste 4 regels (de DIR_xxx regels) dien je zelf de juiste directory-namen in te vullen. Ik heb de namen gebruikt zoals in het Automator voorbeeld. Het script sla je op in de map waarin de 4 submappen zich in bevinden. Uitvoeren van het script doe je daarna met:

sh scriptnaam
of
bash scriptnaam

(Bewerkt door Pieterr om 23:54, 25-02-2015)

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 08:09    reactie #11
geplaatst door: Robert
En is het mogelijk om dit script laten vragen naar de locaties?

Bijvoorbeeld door de mappen in Terminal te slepen?
(ik weet dat Terminal dan automatisch de juiste locaties overneemt).

Als ik hier kijk dan lijkt het mogelijk:

http://stackoverflow.com/questions/9180476/how-to-prompt-a-user-for-a-name-to-create-a-folder-bash-shell-script

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 10:14    reactie #12
geplaatst door: Godfather
Je kunt ook shell scripts opnemen in Automator met de voordelen die Automator biedt op gebied van bv. het vragen welke mappen, of specificeren van mappen op vaste plekken of nog mooier, droplets maken van het script.
Mac Pro '08 - iPad 16GB - iPhone 6 - Next Gen MB Pro
Compare folders met Automator
26 februari 2015 - 11:00    reactie #13
geplaatst door: Robert
Heb het geprobeerd in Automator, maar het werkt (nog?) niet.

Ik heb twee "Ask for Finder Items" in Automator achter elkaar gezet. Die vragen beide om folders, en die doen hun werk gewoon.

Daarna gekozen voor "Run Shell Script", en daar het volgende in geplakt (mijn folders heten anders, vandaar de verschillen.

Verder heb ik de eerste zinnen van Pieterr weggelaten (de definities van de directories), omdat Automator dat volgens mij doet met Ask for Finder Items.


#
EXT_JPG=.JPG
EXT_RAW=.CR2

for jpg in $(ls ${DIR_DEF}/*)
do
tmp=${jpg/${DIR_DEF}/${DIR_CR2}}
raw=${tmp/${EXT_JPG}/${EXT_RAW}}
cp ${raw} ${DIR_DEF}
done

(aan het eind van de zinnen die beginnen met tmp en raw staan wel degelijk twee accolades, het forum maakt daar enkele vierkante haken van, als je op het knopje 'Bewerk' onder dit bericht klikt dan zie je de 'echte' code).

Het resultaat is een foutmelding:


usage: cp [-R [-H | -L | -P]] [-fi | -nl] [-apvX] souce_file target_file

Iemand die daar wat van snapt?
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 13:30    reactie #14
geplaatst door: Pieterr
Citaat
Robert om 11:00, 26-02-2015
Verder heb ik de eerste zinnen van Pieterr weggelaten (de definities van de directories), omdat Automator dat volgens mij doet met Ask for Finder Items.

In het script worden variabelen gebruikt (DIR_xxx) om aan te geven waar de bestanden gevonden kunnen worden en waar ze heenmoeten.

Het is niet zo dat als jij vanuit Automator een scriptje aanroept, dat dan automagisch dezelfde variabelen een correcte waarde hebben gekregen. Daar is meer voor nodig.

In het interfacing tussen Automator en shell scripts heb ik me nog niet verdiept. Daar wil ik wel eens naar kijken maar dat wordt dan pas op z'n vroegst in het weekend.

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 14:02    reactie #15
geplaatst door: Robert
@ Pieterr: Het probleem is dat de mappen steeds op andere locaties staan, want steeds andere klussen.

M.a.w., zowel Joris als ik maken bij iedere klus steeds weer nieuwe folders aan, maar eindigen daarin altijd op hetzelfde, in mijn geval met een folder DEF en een folder CR2. In die DEF staan de uitgekozen jpegs (en in CR2 natuurlijk de RAW bestanden  :wink:).

Ik heb trouwens ook jouw eerder uitleg proberen te volgen, maar krijg in Terminal steeds weer de melding "no such file or directory". Zowel daardoor, door het feit van de steeds veranderende locatie en de suggestie van Godfather ben ik pogingen met Automator gaan doen.

Dit draadje ontstond trouwens doordat de Compare Folders Workflow niet meer goed werkte, als die aan te passen zou zijn dan zouden we misschien ook in één klap uit de brand zijn.

Ik ben benieuwd, in de tussentijd ga ik gewoon weer met de hand aan de slag (klusje met 132 uitgekozen foto's, du sik ben wel weer even bezig...  :wink:).

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 14:18    reactie #16
geplaatst door: hartgas
hoi pieterr en robert,

ik wacht hem af, ik wens jullie sterkte, heb zelf geen kaas gegeten van terminal programmeren.
@robert:: breek je jpg's op in 3 of 4 mappen dan doet de automator het wel.
zodra het werkgeheugen vol raakt dan gaat de action over de kop denk ik zo.

succes
~joris

Compare folders met Automator
26 februari 2015 - 14:35    reactie #17
geplaatst door: Pieterr
Citaat
Robert om 14:02, 26-02-2015
@ Pieterr: Het probleem is dat de mappen steeds op andere locaties staan, want steeds andere klussen.

Dat snap ik.
Daarom staan er 4 variabelen bovenaan het script. Het enige wat je hoeft te doen is daar de correcte mapnamen in te zetten. Dat mag ook een compleet pad zijn:

DIR_1E=/Users/robert/Pictures/opdracht1/1e
DIR_CR2=/Users/robert/Pictures/opdracht1/cr2
DIR_FINAL=/Users/robert/Pictures/opdracht1/final
DIR_JPG=/Users/robert/Pictures/opdracht1/jpg

Etc.

En uiteraard snap ik ook dat het nog makkelijker werkt als je dit soort paden bij elkaar kunt klikken via Automator.

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 15:12    reactie #18
geplaatst door: Robert
@ Pieterr: het werkt! Die laatste hint van Pieterr was wat er miste.

Heb de mappen in Terminal gesleept, de paden gekopieerd en die in het script geplakt.

Toen sh in Terminal gezet en daar jouw script in gesleept (zodat de juiste locatie daarvan ook in Terminal stond), en na een Enter werkte het!

De bestanden werden trouwens gekopieerd en niet verplaatst, geen idee wat daarvoor zou aangepast moeten worden.

Heb net het ook via Automator geprobeerd, en dat werkt ook. Maar dat was wel met het script waar al de juiste locaties in staan, dus ik denk dat ik daar eigenlijk aan het valsspelen ben en dat die Ask for Finder Items nu eigenlijk niets doet... :wink:

Edit:
Net de twee keer Ask for Finder Items weggehaald en het script loopt inderdaad nog steeds, dus die deden inderdaad niets. Is iets makkelijker op deze manier, want het is niet meer nodig om de locatie van het script aan te geven.

Het ideaal zou dus zijn dat de locaties door erop te klikken ingevuld zouden kunnen worden, maar geen idee of dat kan met Automator.

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 15:22    reactie #19
geplaatst door: Pieterr
Citaat
Robert om 15:12, 26-02-2015
De bestanden werden trouwens gekopieerd en niet verplaatst, geen idee wat daarvoor zou aangepast moeten worden.

Ja er wordt een kopie van de foto gemaakt. Als je dat liever niet hebt, moet je in het script in de een-na-laatste regel 'cp' vervangen door 'mv'. Dan zal het script ook aanzienlijk sneller gaan. Maar je bent de foto dan wel kwijt in de originele lokatie.

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 15:29    reactie #20
geplaatst door: Pieterr
Citaat
Pieterr om 13:30, 26-02-2015
In het interfacing tussen Automator en shell scripts heb ik me nog niet verdiept. Daar wil ik wel eens naar kijken maar dat wordt dan pas op z'n vroegst in het weekend.

Hier staan wat eerste aanknopingspunten...

http://stackoverflow.com/questions/4663982/automator-variable-in-shell-script

http://web.archive.org/web/20131018214926/http://coreygilmore.com/blog/2010/05/07/passing-multiple-automator-variables-to-a-shell-script/

"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 15:30    reactie #21
geplaatst door: Robert
@ Pieterr: is inderdaad de bedoeling dat het verplaatst, anders verdubbeld alle data (al die RAW bestanden nemen al voldoende plaats in!).

Heb trouwens net hetzelfde gedaan met een map die 1e heet, maar veranderde daarbij alleen de locatie bovenaan. Tot mijn verbazing werkt dat ook, dus dat terwijl in het script zelf overal nog DIR_DEF staat, in plaats van DIR_1E.

Vreemd, maar wel in één klap 129 stuks! :thumbs-up:

Edit @ Pieterr: bedankt voor die links, maar daar kom ik de komende dagen ook niet aan toe.
Nu eerst even hard werken... :wink:

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 15:36    reactie #22
geplaatst door: Robert

Citaat
Pieterr om 15:22, 26-02-2015
[Als je dat liever niet hebt, moet je in het script in de een-na-laatste regel 'cp' vervangen door 'mv'.

Het kwartje begint te vallen, cp staat natuurlijk voor copy en mv voor move.

Citaat
Dan zal het script ook aanzienlijk sneller gaan.

Dat kan je wel zeggen. Met mv kon ik nauwelijks met m'n ogen knipperen, en 129 RAW bestanden stonden al op juiste plek! :thumbs-up:
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
Compare folders met Automator
26 februari 2015 - 15:47    reactie #23
geplaatst door: Pieterr
Het is niet echt "des Macs", maar enige kennis van de Terminal (lees: Unix) komt af en toe goed van pas.  :smile:
"One experiment is worth a thousand expert opinions."
Compare folders met Automator
26 februari 2015 - 15:50    reactie #24
geplaatst door: Robert
@ Pieterr: heb jij nog een verklaring voor het feit dat het ook op de folder '1e' werkt, terwijl ik 'DEF' in het script zelf heb staan?

Ik ben natuurlijk blij dat het toch werkte, maar ik snap er niks van... :blink:

Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.