Genau, als Alternative, falls du die find-Variante bevorzugst oder höhere Ansprüche stellst, die man beim find halt deutlich besser ausbauen kann.dasebastian hat geschrieben:04.12.2024 20:51:00Du meinst statt "for file in "${workdir}"/**/*.mp3; do"?
Du gibst diese Tags beim Skriptaufruf aber schon (wie oben gezeigt) mit ".." umschlossen an?Beim ausführlicheren Testen bin ich draufgekommen, dass Genretags mit Leerzeichen nicht verarbeitet werden, weder beim Auffinden (zB "Deutscher Indie") noch beim Setzen eines neuen Tags (zB "Germ Alt") mit Leerzeichen.
Falls es daran nicht liegt, dann kannst du die 3 Variablenzuweisungen der Positionsparameter noch quoten. Normalerweise ist das zwar eine der Ausnahmen, bei denen man das eben nicht quoten muss, allerdings weiß ich auch nicht genau, bei welchen Shells das so gilt und du sourcest das Skript ja. Benutzt du als aufrufende Shell eine andere Shell als die Bash?
Im Zweifel lesend immer quoten:
Code: Alles auswählen
workdir="${1:-.}"
old_genre="${2:-altesgenre}"
new_genre="${3:-neuesgenre}"
EDIT: Wenn es daran auch nicht liegt, dann solltest du mal einen entsprechenden eyeD3-Aufruf direkt im Terminal machen, um zu schauen, ob das Teil überhaupt mit Leerzeichen-Tags zurecht kommt. Also sowas ungefähr (mit gesetztem Dateinamen):
Code: Alles auswählen
eyeD3 -G "Germ Alt" <FILE>