Ik heb ene poos geleden een werkend mp3 normaliseer script gehad, dat verdacht veel leek op dit beestje hieronder. Ik heb ongeveer 10.000 nummers, verdeeld over een aantal subdirs en die wil ik normalizen.
Als ik dit script uitvoer krijg ik de volgende error:
Ik heb via via al gevonden dat het mogelijk een probleem is van bash en niet van find, maar veel verder kom ik niet. Ik heb al geexperimenteerd met de quotes aan/uit te zetten rond *.mp3 en ik heb ook enkele quotes ipv dubbele gebruikt, alles zonder resultaat.
Waar kan dit nog aan liggen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #!/bin/bash
#Martijn's mp3 sorteer script
# 'find -print0' print alle bestanden gescheiden door een null character.
# 'xargs -0' verwacht alle argumenten gescheiden door een null character.
GECAT=/mnt/allexports/mp3/Sortaktie
cd $GECAT
find $GECAT -type f -name "*.mp3" -print0 | xargs -0 sh -c '
while [ -n "$1" ]; # zolang $1 de naam van een mp3 bevat.
do
echo Normalizing "$1"
mp3gain -r -k "$1"
# schuif alle variabelen een plaats op, $2 wordt $1 etc.
shift
done
' dummyarg |
Als ik dit script uitvoer krijg ik de volgende error:
code:
1
| ./mp3normalize.sh: line 11: /usr/bin/find: Argument list too long |
Ik heb via via al gevonden dat het mogelijk een probleem is van bash en niet van find, maar veel verder kom ik niet. Ik heb al geexperimenteerd met de quotes aan/uit te zetten rond *.mp3 en ik heb ook enkele quotes ipv dubbele gebruikt, alles zonder resultaat.
Waar kan dit nog aan liggen?
ieeeepppppp :P