Ich habe ein Bash-Skript, das meinen Musikordner durchsucht und alle Song-Metadaten abruft mitMedieninformationund soll Ordner mit allen Künstlernamen erstellen, was jedoch nicht gelingt.
Dies ist der Code bisher:
#!/bin/bash
cd Music/
for i in "$(ls -b | grep -v /)"; do
info=$(mediainfo $i)
artist=$(echo "$info" | grep "^Performer" | awk '{for(i=3;i<=NF;++i)printf $i""FS ; print ""}')
mkdir "$artist"
done
Aus irgendeinem Grund scheint es zuerst alle Songs durchzugehen und dann zu versuchen, ein Verzeichnis mit allen Namen zusammen zu erstellen. Meine Absicht ist es, ein Verzeichnis für den Interpreten zu erstellen, den Mediainfo in jeder Musikdatei findet.
Antwort1
Du kannstÜber Dateien iterierenohne ls
.
for i in ./Music/*; do
info=$(mediainfo "$i") # fixed to "$i"
artist=$(echo "$info" | grep "^Performer" | awk '{for(i=3;i<=NF;++i)printf $i""FS ; print ""}')
mkdir "$artist"
done