Ich habe ein Musikverzeichnis auf einem Debian-Computer, das von Zeit zu Zeit zu große Dateien darin bekommt. Um mir beim eventuellen Löschen dieser Dateien zu helfen, habe ich mediainfo installiert und ein Skript erstellt, das mit diesem Befehl alle Dateien im Musikverzeichnis durchlaufen soll.Bash: Fehler beim Durchlaufen aller Dateien in einem Verzeichnis mit mediainfo
Ich versuche, den Dauerparameter zu verwenden, um zu definieren, was gelöscht werden muss oder nicht. Die Beispieleingabe lautet:
Ausgabe gibt die Dauer als Millisekunden zurück. Bitte beachten Sie, dass mediainfo, wenn Dateien Leerzeichen enthalten, einen Backslash vor ihnen markiert.
#!/bin/bash
for i in /home/administrator/music/*
do
# Changing i to readable form for mediainfo
i=$(echo $i | sed -r 's/[ ^]+/\\&/g')
echo $i
# Go Through files, storing the output to mediadur variable
mediadur=$(mediainfo --Inform="General;%Duration%" $i);
echo $mediadur;
done
Ausgänge sind Echo: Ich habe diese Rechnung in meinem Skript genommen
/home/administrator/music/Example\ Full\ OST.mp4
Die mediadur Echo Ausgang nichts angezeigt. Aber wenn ich die erste Echoausgabe in das erste Beispiel kopiere, wird dieselbe Ausgabe angezeigt.
Wenn das Verzeichnis jedoch über Medien verfügt, die im Dateinamen keinen Platz haben, funktioniert das Skript einwandfrei. Die Ausgabe des Skripts:
/home/administrator/music/546721638279.mp3
83017
Dieses Problem hat mich sehr verwirrt. Jede Hilfe wird geschätzt.