Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 12:54   
geplaatst door: brulkjaer
Ik zoek al een tijdje naar de mogelijkheid om namen van bestanden geautomatiseerd te wijzigen.
Ik heb een excellijst waarin alle nieuwe namen staan van bestanden.
Die namen moeten overgezet worden naar de bestanden die in een map staan.

Wie weet daar een mogelijkheid voor?
Ik heb al even in Automator gekeken, maar zo niets kunnen vinden.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 13:10    reactie #1
geplaatst door: Sypie
Je kunt automator best gebruiken voor bestanden met dezelfde naam en een openlopend nummer. Je kunt automator niet zomaar gebruiken om een random lijst met documenten een random lijst met namen te laten geven.

Met deze app kan dat wel: http://www.filerenamer.com
Ik heb geen ervaringen met deze app, daar kan ik je dus niet bij helpen. Ik weet ook niet hoe betrouwbaar die download is. Misschien kun je er iets mee.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 13:24    reactie #2
geplaatst door: Jeroendv
Kun je een voorbeeld geven van twee verschillende bestandsnamen?
Dient de naam uit het excel bestand gehaald te worden? Je hebt dus een app nodig die het werkboek inleest en op basis daarvan acties uitvoert? Als dat zo is moet ik bijna aan een scripttaal achtige functie denken. Zie ScriptEditor hoe je een scripttaal kunt gebruiken. Hoe handig ben je bijvoorbeeld met Python/AppleScript/Ruby/Perl? Kan mij voorstellen dat het net te veel gedoe is voor een eenmalige actie.

Mogelijk interessant,
Ik gebruik de rename functie in de App Forklift. Zie de handleiding. Je dient dit wel elke keer zelf per batch uit te voeren. Al handiger dan handmatig maar dan dient de bestandsnaam niet te veel te wijzigen. Dus simpelweg hernoemen naar foto1, foto2, etc.

antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 14:23    reactie #3
geplaatst door: brulkjaer
Om je vraag te beantwoorden:

Namen in Excel bestand heten iets van: WNB5W00, WNB4T12, etc.

De Wav-files (die dus de namen uit Excel moeten krijgen) heten zoals: "track1.1.wav, track2.1.wav, etc.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 14:59    reactie #4
geplaatst door: zwap

geblokkeerd

En wat is de koppeling tussen de oude en de nieuwe naam? Staat ook de oude naam in het Excel bestand? Of?
Hoe weet je welke naam track1.1.wav moet krijgen?
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 15:03    reactie #5
geplaatst door: brulkjaer
De oude naam staat niet in het Excel bestand.
De eerste audiofile moet de naam krijgen van de 1e naam uit Excel.
Daarna de 2e audiofilte de 2e naam uit de excel-file, etc.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 15:15    reactie #6
geplaatst door: Sypie
De oude bestandsnamen kun je heel eenvoudig in Excel krijgen:
* Open de map in Finder
* Selecteer de bestanden die hernoemd moeten worden
* Druk op CMD+C
* Ga naar excel en ga in een lege kolom staan
* Druk op CMD+V

Nu heb je de bestandsnamen in Excel staan en kun je met de eerder genoemde tools aan de slag denk ik.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 17:35    reactie #7
geplaatst door: puk1980
De Wav-files (die dus de namen uit Excel moeten krijgen) heten zoals: "track1.1.wav, track2.1.wav, etc.

Staan alle .wav bestanden in dezelfde map (Folder/directory)?

Zo ja, dan kun je met een simpel shell-script de rename uitvoeren. Zo niet, dan kan dat nog steeds, maar wordt het bijeenharken van de .wav bestanden ietsje complexer. Als je het wilt proberen op deze manier kan ik je wel een voorbeeld script geven.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 18:39    reactie #8
geplaatst door: brulkjaer

Per map zijn het ongeveer steeds 70 .wav bestanden, dus ik ben al lang blij als ik het per map kan doen.

Dus ja, ik ga uit van alle bestanden in 1 map.
Ik ben zeker geïnteresseerd in je script.
Zelf heb nog geen ervaring met scripts.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 19:27    reactie #9
geplaatst door: brulkjaer
De genoemde tooltjes bekeken. Maar daar lijkt het niet mee te lukken. Dus mijn hoop is op een script gericht.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 22:44    reactie #10
geplaatst door: puk1980
@brulkjaer: Vanavond gaat niet lukken. Ik kom er morgen op terug.
antw: Geautomatiseerd namen van bestanden wijzigen
2 augustus 2019 - 23:22    reactie #11
geplaatst door: Sypie
De genoemde tooltjes bekeken. Maar daar lijkt het niet mee te lukken. Dus mijn hoop is op een script gericht.
Ik heb net even File Renamer gedownload en bekeken. Ik heb het programma niet getest omdat ik simpelweg geen bestanden heb die ik wil hernoemen.

Je kunt hier de bestanden in laden en een excel bestand met de nieuwe bestandsnamen aan koppelen. Zie onderstaande schermafbeelding.
Schermafbeelding 2019-08-02 om 23.20.20.pngGeautomatiseerd namen van bestanden wijzigen
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 10:24    reactie #12
geplaatst door: brulkjaer
Op welk macos draait File renamer bij jou?
Bij mij wil ie niet draaien (macos 10.12 en 10.14). Geeft aan max. macos 10.9
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 10:38    reactie #13
geplaatst door: puk1980
Er zijn verschillende van dit soort renamers te vinden:
https://alternativeto.net/software/file-renamer/?platform=mac

Bijvoorbeeld: https://mrrsoftware.com/namechanger/



(Nu eerst boodschappen doen, dan kom ik dadelijk met een shellscript als je die nog nodig hebt.)
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 10:39    reactie #14
geplaatst door: brulkjaer
Top! Dank je wel!

Tooltjes bekeken, maar behalve 'Renamer' kunnen ze (volgens mij) niet een Excelsheet uitlezen.
En bij 'Renamer' loop ik er tegen aan dat, welke optie ik ook kies in Excel om op te slaan (div. vormen van .csv) ik altijd de melding krijg: "Filename will remain unchanged".

Dus een script is welkom.
Bewerkt: 3 augustus 2019 - 12:03 door brulkjaer
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 12:41    reactie #15
geplaatst door: Sypie
Op welk macos draait File renamer bij jou?
Bij mij wil ie niet draaien (macos 10.12 en 10.14). Geeft aan max. macos 10.9
Bij mij draait die op 10.11 (El Capitan)

En bij 'Renamer' loop ik er tegen aan dat, welke optie ik ook kies in Excel om op te slaan (div. vormen van .csv) ik altijd de melding krijg: "Filename will remain unchanged".
Het CSV bestand wat je maakt moet wel een exemplaar zijn waar de waarden gescheiden worden met een tab en niet met een komma of puntkomma.
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 13:03    reactie #16
geplaatst door: puk1980
Je kunt in Excel twee kolommen met namen maken, de oude en de nieuwe naam, zoals hierboven (reactie #6) door Sypie uitgelegd. Daarna kun je de tabel exporteren naar CSV formaat. Je krijgt dan een tekstbestand (bv tracks.csv) waarin de oude en nieuwe naam door een komma gescheiden zijn.

Citaat
track1.1.wav,WNB5W00
track2.1.wav,WNB4T12

Vervolgens open je een teksteditor waarin je onderstaand shell-script zet:
while read line
do
    OLD=`echo $line | cut -d, -f1`
    NEW=`echo $line | cut -d, -f2`
    EXT=`echo $OLD | sed '/\./s// /g' | awk '{print $NF}'`
    NEW=$NEW"."$EXT
    echo mv "$OLD" "$NEW"
    if [ -f "$OLD" ]; then
        mv "$OLD" "$NEW"
    else
        echo Bestand $OLD niet gevonden.
    fi
done


Dit shell-script sla je op (bv rename.sh) in de map waar de .wav bestanden staan.
Om het uit te kunnen voeren dien je het eerst nog 'uitvoerbaar' te maken. Dat doe je zo:
chmod 755 rename.sh


Je kunt nu de inhoud van het .csv bestand gebruiken als input voor de rename:
cat tracks.csv | ./rename.sh


Hier kun je zien hoe je het shell-script uitvoert in de Terminal:
$ ls -al                             
total 16
drwxr-xr-x   4 puk1980  staff  128 Aug  3 12:55 .
drwx------+ 13 puk1980  staff  416 Aug  3 12:32 ..
-rwxr-xr-x   1 puk1980  staff  310 Aug  3 12:46 rename.sh
-rw-r--r--@  1 puk1980  staff   43 Aug  3 12:33 tracks.csv

$ touch track1.1.wav track2.1.wav

$ cat tracks.csv | ./rename.sh                             
mv track1.1.wav WNB5W00.wav
mv track2.1.wav WNB4T12.wav

$ ls -al
total 16
drwxr-xr-x   6 puk1980  staff  192 Aug  3 12:56 .
drwx------+ 13 puk1980  staff  416 Aug  3 12:32 ..
-rw-r--r--   1 puk1980  staff    0 Aug  3 12:56 WNB4T12.wav
-rw-r--r--   1 puk1980  staff    0 Aug  3 12:56 WNB5W00.wav
-rwxr-xr-x   1 puk1980  staff  310 Aug  3 12:46 rename.sh
-rw-r--r--@  1 puk1980  staff   43 Aug  3 12:33 tracks.csv
antw: Geautomatiseerd namen van bestanden wijzigen
3 augustus 2019 - 15:46    reactie #17
geplaatst door: LuckyLuke
Ik gebruik voor dit soort acties A Better Finder Rename.
https://www.publicspace.net/ABetterFinderRename/index.html

Daar kun je gewoon lijst met namen inlezen, rename klaar.
antw: Geautomatiseerd namen van bestanden wijzigen
4 augustus 2019 - 21:18    reactie #18
geplaatst door: brulkjaer
@Puk,
Daar ga ik morgen even voor zitten, om geen fouten te maken.
De excelsheet met export naar .cvs heb ik gemaakt. Maar als ik de output daarvan bekijk staan daar geen komma's tussen maar punt-komma's.


@LuckyLuke, ik zie in de app "ABetterFinderRename" geen mogelijkheid om Excel-files in te lezen.
antw: Geautomatiseerd namen van bestanden wijzigen
4 augustus 2019 - 22:05    reactie #19
geplaatst door: puk1980
De excelsheet met export naar .csv heb ik gemaakt. Maar als ik de output daarvan bekijk staan daar geen komma's tussen maar punt-komma's.

Dat geeft niet. Er komt twee keer “-d,” voor in het script. Daar wordt het scheidingsteken (“delimiter”) opgegeven. Als je beide keren “-d,” vervangt door “-d;” wordt een punt-komma (in plaats van een komma) als scheidingsteken gebruikt in het script.
antw: Geautomatiseerd namen van bestanden wijzigen
5 augustus 2019 - 21:19    reactie #20
geplaatst door: brulkjaer
Vanavond eens aan het stoeien gegaan met het script. Ik heb 2x ,d aangepast naar ;d in het script.
Maar ik doe verder iets niet goed. Want ik krijg onderstaande output: (Je ziet het, ik heb geen ervaring met scripts)

Last login: Mon Aug  5 21:03:25 on ttys000
MacBook-Pro-van-Wim-2:~ wim$ chmod 755 rename.sh
chmod: rename.sh: No such file or directory
MacBook-Pro-van-Wim-2:~ wim$ cat tracks.csv | ./rename.sh
-bash: ./rename.sh: No such file or directory
cat: tracks.csv: No such file or directory
MacBook-Pro-van-Wim-2:~ wim$ while read line
> do
>     OLD=`echo $line | cut -d; -f1`
>     NEW=`echo $line | cut -d; -f2`
>     EXT=`echo $OLD | sed '/\./s// /g' | awk '{print $NF}'`
>     NEW=$NEW"."$EXT
>     echo mv "$OLD" "$NEW"
>     if [ -f "$OLD" ]; then
-bash: syntax error near unexpected token `then'
MacBook-Pro-van-Wim-2:~ wim$         mv "$OLD" "$NEW"
-bash:  : command not found
MacBook-Pro-van-Wim-2:~ wim$     else
-bash:  : command not found
MacBook-Pro-van-Wim-2:~ wim$         echo Bestand $OLD niet gevonden.
-bash:  : command not found
MacBook-Pro-van-Wim-2:~ wim$     fi
-bash:  : command not found
MacBook-Pro-van-Wim-2:~ wim$ done


De test-excelsheet ziet er zo uit (en uiteraard opgeslagen als .csv.

Old Name           New Name
Track1.1.wav   WNSG2W00.wav
Track2.1.wav   WNSB02T12.wav
Track3.1.wav   TBGS5A100.wav
antw: Geautomatiseerd namen van bestanden wijzigen
5 augustus 2019 - 23:06    reactie #21
geplaatst door: puk1980
Je bent warm, en komt in de buurt. :smile:

Maar je probeert het script (“while read line” etc) direct in de Terminal uit te voeren. Dat is niet de bedoeling.

De bedoeling is dat je het script eerst opslaat in een tekstbestand, met als naam ‘rename.sh’. Vervolgens maak je van dat tekstbestand een uitvoerbaar script.
antw: Geautomatiseerd namen van bestanden wijzigen
5 augustus 2019 - 23:11    reactie #22
geplaatst door: puk1980
Verder dient de Excel tabel geëxporteerd (dwz opgeslagen) te worden als .csv bestand, met als naam ‘tracks.csv’. Als je een andere naam wilt gebruiken kan dat ook, maar die moet je dan wel in het Terminal commando gebruiken.

Zo’n foutmelding (“cat: tracks.csv: No such file or directory”) betekent dat het bestand met de naam ‘tracks.csv’ niet gevonden wordt in de map waar je het commando geeft.
antw: Geautomatiseerd namen van bestanden wijzigen
6 augustus 2019 - 21:45    reactie #23
geplaatst door: tonp
Citaat
@LuckyLuke, ik zie in de app "ABetterFinderRename" geen mogelijkheid om Excel-files in te lezen.
Werkt in mijn geregistreerde versie (10) als een zonnetje.
Category: Advanced & Special
Action: Rename from file list
CSV met 1 kolom waarin de nieuwe naam
antw: Geautomatiseerd namen van bestanden wijzigen
7 augustus 2019 - 18:13    reactie #24
geplaatst door: puk1980
@brulkjaer: Is het uiteindelijk nog gelukt?