Erstellen Sie mehrere Verzeichnisse aus Mediainfo-Informationen, in die Sie Musik einfügen können

Erstellen Sie mehrere Verzeichnisse aus Mediainfo-Informationen, in die Sie Musik einfügen können

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

verwandte Informationen