geplaatst door: Robert
Op dit moment gebruik ik de app Aggregator om in de Finder bestanden te splitsen op basis van extensie. Als ik daar bijvoorbeeld een map met .CR2 en .JPG bestanden (en dus extensies) op sleep, dan maakt die Aggregator daar automatisch folders voor aan en zet er dus de bestanden in.

Die folders heten dan CR2 en JPG, en in de ene staan dus alle CR2 bestanden en in de andere alle JPG bestanden.

Omdat Aggregator een 32-bits app is wil ik graag stoppen met die gebruiken. Daarom de vraag of Automator dit kan doen, en zo ja, hoe krijg ik dat dan voor elkaar?
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
29 september 2018 - 22:38    reactie #2
geplaatst door: Robert
Heb de links gelezen en snap het allemaal, maar neem aan dat ik een goed script moet hebben om aan die folder te hangen. Ik heb het idee dat het hiermee misschien zou kunnen, maar te weinig kennis.

En begrijp ik het goed dat het altijd alleen maar met een doelmap kan waar je dus Folder Actions aan 'hangt'? Je kan zo'n script dus niet op willekeurig welke folder (die je eerst kiest) loslaten?
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
29 september 2018 - 23:00    reactie #3
geplaatst door: MacGB
Je kunt ook een Automator actie maken als Finder actie.  Maar dan moet je wel op de betreffende map klikken met rechtermuisklik en uit het rol-menu de actie kiezen. Ben nog niet zo bedreven maar heb al wel iets geknutselt dat uit een map met RW2 (da’s mijn RAW-formaat) en jpeg de Raw’s naar een ander map verplaatst.

Ik gebruik overigens deze Finder-mogelijkheid om mijn film-bestanden te anoteren en b.v. te hercoderen voor verschillende mp4-formaten. Superhandig.  Daarnaast heb ik een 6-tal scripts als service binnen Foto’s toegevoegd.

Mogelijk dat Puk, zoals hij al aangaf, voor je een goed script kan optuigen ?

antw: Kan je met Automator bestanden scheiden op extensie?
30 september 2018 - 12:12    reactie #4
geplaatst door: puk1980
Ik kom een heel eind met de tips in dit artikel:
https://apple.stackexchange.com/questions/232205/how-to-create-an-automator-service-to-run-a-script-on-all-files-in-a-folder

Ik heb alleen het bash shell script enigszins aangepast. Het Automator script heb ik 'Aggregator' genoemd.

for d in "$@"
do
    cd "$d"
    mkdir CR2
    mkdir JPG
    cp *.CR2 CR2
    cp *.JPG JPG
done

Je selecteert een map in de Finder met JPG en CR2 bestanden, rechts-klik, en onderaan staat de Finder Service in het lijstje om uit te voeren. Dit bash script maakt kopieën van de bestanden. Als je dat niet wilt, kun je 'cp' veranderen in 'mv'.


https://i.imgur.com/QNYKvTJ.png
Kan je met Automator bestanden scheiden op extensie?



In de Finder, ga naar de lokatie van de map toe:
https://i.imgur.com/Cn9G268.png
Kan je met Automator bestanden scheiden op extensie?


Rechts-klik op de map, en kies Aggregator (onderaan):
https://i.imgur.com/RFzQrTH.png
Kan je met Automator bestanden scheiden op extensie?


Het resultaat:
https://i.imgur.com/c66C3yJ.png
Kan je met Automator bestanden scheiden op extensie?

antw: Kan je met Automator bestanden scheiden op extensie?
30 september 2018 - 12:34    reactie #5
geplaatst door: Shmoo

geblokkeerd

Er bestaat ook een app genaamd Hazel, voor de Mac.

Dit is ook een soort Automator waarmee je bepaalde taken kunt laten uitvoeren maar dan een stukje vriendelijker of laagdrempeliger gemaakt. Ik vind dat Automator intimiderend en ingewikkeld over kan komen op bepaalde mensen. Het is zeg maar de Terminal maar dan met knopjes, mijn ervaring is dat mensen dit soort apps niet prettig vinden.

Hazel zal ongetwijfeld minder mogelijkheden hebben in vergelijking met Automator omdat deze app specifiek gericht is op sorteren en filteren (opruimen/organiseren) van content.

Het UI waar je de te nemen stappen instelt ziet er ook veel vriendelijker uit. Dit oogt alsof je een filter ergens instelt. Veel vriendelijker dan Automator (dat voor mijn gevoel al sinds 2004 hetzelfde is)
antw: Kan je met Automator bestanden scheiden op extensie?
30 september 2018 - 12:46    reactie #6
geplaatst door: puk1980
Dit is ook een soort Automator waarmee je bepaalde taken kunt laten uitvoeren maar dan een stukje vriendelijker of laagdrempeliger gemaakt.

Hoe ziet de oplossing van Robert’s vraag er uit in Hazel?
antw: Kan je met Automator bestanden scheiden op extensie?
30 september 2018 - 13:43    reactie #7
geplaatst door: boiing
Ik weet niet of Robert daar $32 voor over heeft maar verder een prima suggestie van Schmoo. Ik gebruik dit al jaren, het is een prachtig tooltje voor dit soort zaken.

Mocht de gratis Automator oplossing niet voldoen dan kan ik wel wat in elkaar knutselen (je moet dan met 'processing subfolders' gaan werken).
The amount of energy needed to refute bullshit is an order of magnitude bigger than that needed to produce it (Brandolini's Law)
antw: Kan je met Automator bestanden scheiden op extensie?
1 oktober 2018 - 07:51    reactie #8
geplaatst door: Robert
@ puk1980: enorm bedankt voor deze oplossing, maar er lijkt wat te missen, waardoor ik het niet aan de praat krijg.

In jouw eerste schermafbeelding kan ik zien dat het om een Workflow gaat, maar als ik daarvoor kies en links binnen Utilities de keuze maak voor een Run Shell Script dan krijg ik rechts een grijs vlak met de tekst "Drag actions of files here to build your workflow" waar ik verder niets kan doen.

Jouw shell script in een .txt bestandje bewaren en in dat grijze vlak slepen werkt in ieder geval niet. Waarschijnlijk mis ik een klein stapje, maar dat stapje lijkt wel cruciaal te zijn...
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
1 oktober 2018 - 10:32    reactie #10
geplaatst door: Robert
Het duurde even voordat ik de logica van Automator weer begreep, want dat is inderdaad niet de meest gebruiksvriendelijke app die Apple ooit gemaakt heeft (door nerds en voor nerds?).

In Mojave heten Services trouwens Quick Actions, maar het icoon is gelukkig hetzelfde gebleven, dus dat is duidelijk genoeg.

Screenshot-2018-10-01-at-09.48.48.jpgKan je met Automator bestanden scheiden op extensie?


Daarna duurde het even voordat ik begreep dat ik de optie Shell Script naar het vlak daarnaast moet slepen (ik dacht eerst dat het daar om externe bestanden ging) en daarna goed kijken hoe jouw instellingen stonden, want "Pass input: as arguments" bleek de finale oplossing, want het werkt!   :thumbs-up:

Enorm bedankt voor deze hulp, scheelt weer een 32-bits app (dat sinds updates van de maker alleen maar slechter was geworden, de toegevoegde opties zorgden voor meer stappen, terwijl dit script exact doet wat het moet doen).
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
1 oktober 2018 - 10:47    reactie #11
geplaatst door: zwap

geblokkeerd

Je kunt het ook als Application opslaan. Voordeel is dat je dan een map op het icoon van de app kunt droppen.
antw: Kan je met Automator bestanden scheiden op extensie?
1 oktober 2018 - 11:47    reactie #12
geplaatst door: puk1980
... en daarna goed kijken hoe jouw instellingen stonden, want "Pass input: as arguments" bleek de finale oplossing, want het werkt! 
Enorm bedankt voor deze hulp!

 :thumbs-up:
antw: Kan je met Automator bestanden scheiden op extensie?
11 oktober 2018 - 23:06    reactie #13
geplaatst door: Robert
Je kunt het ook als Application opslaan. Voordeel is dat je dan een map op het icoon van de app kunt droppen.

Omdat ik merkte dat ik in het contextuele menu er nog wel een naast klikte vroeg ik me af of ik er ook aan Application van zou kunnen maken. Daarom zocht ik dit draadje op, et voilà, ik zie deze suggestie staan (had ik eerder kennelijk gemist  :blush:).

Lang verhaal kort: nu een Application van gemaakt en staat voortaan altijd op dezelfde plak klaar in het Dock. Super!   :thumbs-up:

Verder heb ik nog een variatie op het script gemaakt (begin de logica een klein beetje te begrijpen) om een stap verder de .tif bestanden in een aparte folder op te slaan die TIFF heet, en die gaat als volgt:

for d in "$@"
do
    cd "$d"
    mkdir TIFF
    mv *.tif TIFF
done
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
12 oktober 2018 - 19:41    reactie #15
geplaatst door: Robert
Hmm, dan helpt het natuurlijk als het uitgelegd wordt...  ;)

Ik snap het "do", dan start het script, en "cd" is Command. "mkdir" moet "make directory" zijn, en zoals jij al zelf schreef staat "cp" voor copy en "mv" voor move. Dus het script maakt een directory (=map) aan met de naam TIFF en verplaatst daarna .tif bestanden daarnaar toen.

Maar waarom "d" en "@" en wat doet het dollarteken?
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
12 oktober 2018 - 20:39    reactie #16
geplaatst door: puk1980
‘cd’ staat voor: “change directory”. Oftewel, ga naar de map die je zojuist in de Finder hebt geselecteerd.

Die ‘for’ is de manier om een ‘loop’ te maken, dwz om meerdere keren iets uit te voeren.

De ‘d’ is daarbij een willekeurige naam voor de variabele die je in de ‘loop’ wilt gebruiken.

Je ‘loopt’ in de ‘for’ ‘loop’ over alle in de Finder geselecteerde mappen heen. Dat zal er in de praktijk (van dit script) dus doorgaans maar één zijn. De variable ‘d’ krijgt iedere keer de waarde van de map die geselecteerd is.

$@ staat voor ‘alle’ parameters waarmee het script wordt aangeroepen. In dit specifieke geval slechts één parameter,  namelijk de map die je in de Finder hebt geselecteerd.

En de ‘$d’ gebruik je om de map aan te geven binnen de ‘for’ ‘loop’.


Ik geef toe, dit soort shell programmeren is niet geheel evident, maar als je een paar basis-ideeën kent, kom je een heel eind. :smile:

https://linuxconfig.org/bash-scripting-tutorial-for-beginners

antw: Kan je met Automator bestanden scheiden op extensie?
26 oktober 2018 - 16:55    reactie #17
geplaatst door: Robert
Om te beginnen nog bedankt voor de uitleg (en cd is create directory, volgens mij vergeet ik dat nu nooit meer...  ;)).

Nog even een terugkoppeling: heb het eerste script nu voor het eerst op een wat groter aantal bestanden toegepast (642) en ik realiseer me nu pas hoe ontzettend snel dit is. Waar ik Aggregator bij dit soort aantallen nog bezig zag met tellen, is dit script eigenlijk direct klaar (met andere woorden: het lukt me niet om de map zo snel te openen dat ik nog iets zie gebeuren).
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.
antw: Kan je met Automator bestanden scheiden op extensie?
26 oktober 2018 - 17:20    reactie #18
geplaatst door: puk1980
cd = change directory :wink:


Omdat je ‘mv’ gebruikt (in plaats van ‘cp’) is het script inderdaad heel snel klaar. Het bestandssysteem is zo slim om geen (foto) bitjes te kopieëren bij een ‘move’ maar alleen de directories/folders/mappen te wijzigen (“bestandsnaam toevoegen in de ene, en weghalen in de andere directory”).

En wellicht dat het onder APFS ook allemaal nog nèt iets sneller gaat. (Zo zou Apple het brengen.) :wink:
antw: Kan je met Automator bestanden scheiden op extensie?
26 oktober 2018 - 18:27    reactie #19
geplaatst door: Robert
cd = change directory :wink:

Ik schreef het uit mijn hoofd zonder het na te kijken, dat ik me nu juist daar moet vergissen!  :happy:

Geen idee hoe snel het onder HFS+ gaat maar dat kan ik over een tijdje wel eens uittesten (want ik heb een vriend en collega-fotograaf die ook erg gelukkig zal zijn met dit script).

Bij mij gebeurd het op de 1 TB SSD die Apple leverde in de 2016 MacBook Pro, die is aangesloten met PCI-Express. Inderdaad APFS geformatteerd, maar wel met FileVault ingeschakeld (ik neem aan dat dat laatste niet uitmaakt, want de bestanden worden alleen maar verplaatst).
Klik hier voor informatie over het onder de aandacht brengen van producten of diensten op MacFreak.