staging.inyokaproject.org

>13000 Musik-Dateien per Script löschen

Status: Gelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2119

DiamondFlow schrieb:

Playlists können im M3U, M3U8, PLS, Text-CSV oder TXT Datei exportiert werden.

Ich würde die Playlists grundsätzlich im M3U8-Format exportieren. Dieses nutzt das UTF-8 Format als Encoding für die einzelnen Einträge. Damit sollten auch die Sonderzeichen korrekt erhalten bleiben. Das Ergebnis lässt sich dann wie beim "klassischen" m3u-Files weiterverarbeiten.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 12527

DiamondFlow schrieb:

Leder gehen meine Programmier-Kenntnisse nicht weit genug um diese Script zu benutzen. beim Starten bekomme ich dies:

marina@marina-latitudee6440:~/Schreibtisch$ ./delete.sh
./delete.sh:12: syntax error, unexpected end-of-input, expecting `end'

Mein Fehler: ich hätte mindestens mal die Syntax prüfen sollen. Das done am Ende sollte ein end sein.

Was muss ich dem Script als Argument übergeben?

Den Namen mit der CSV-Liste der Dateinamen. Außerdem musst Du den Spaltenindex des Dateinamens setzen (Variable COL).

Ich habe noch eine Ausgabe hinzugefügt, damit Du sehen kannst, ob die Datei existiert.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/usr/bin/ruby

require 'csv'

COL = 3

CSV.foreach(ARGV.shift) do |rec|
  file = rec[COL]

  if File.exists? file
    puts "Deleting #{file}"
    # uncomment to activate:
    # File.unlink(file) rescue nil
  else
    puts "Does not exist: #{file}"
  end
end

DiamondFlow

(Themenstarter)

Anmeldungsdatum:
16. März 2023

Beiträge: 9

TNTMaster schrieb:

Ich würde die Dateinamen gleich aus der Müll Playlist holen, die du in Mixxx als .m3u exportierst

while read -r -d $'\n' f; do [ -f "$f" ] && echo rm "$f"; done < <(grep ^/media/MusikMixxx/ /Path/To/File/Müll.m3u)

Wenn dir die ausgegebene Liste plausibel erscheint, kannst du das echo entfernen und die Dateien werden tatsächlich gelöscht.

Gruß TNT

Hey, Klasse! Damit ist die Liste auf 2295 Einträge geschrumpft. Danke TNT!!!

Komischerweise werden die verbleibenden Dateien nicht gelöscht. Die .m3u mit den nicht gelöschten Dateien habe ich mal angehängt.

Mull.m3u (231.1 KiB)
Download Mull.m3u

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: 828

Die restlichen müßten dann mit dem richtigen Encoding auch funktionieren:

while read -r -d $'\n' f; do [ -f "$f" ] && echo rm "$f"; done < <(iconv -f ISO-8859-1 -t UTF-8 /Path/To/File/Müll.m3u | grep ^/media/MusikMixxx/)

DiamondFlow

(Themenstarter)

Anmeldungsdatum:
16. März 2023

Beiträge: 9

Hallo TNTMaster,

fast ein kompletter Sieg über den .mp3-Müll. Es verblieben noch 34 Dateien. Wenn ich den Befehl mit den 34 incl. "echo" ausführe bekomme ich keine Ausgabe. Wenn du nochmal drüber schauen würdest? Im schlimmsten Fall kann ich die 34 auch von Hand löschen.

Vielen vielen dank nochmal!

-DiamondFlow

Mul34.m3u (2.9 KiB)
Download Mul34.m3u

TNTMaster

Anmeldungsdatum:
30. Juli 2009

Beiträge: 828

Ein paar erwischt du vielleicht so noch. Bei Pfaden mit "?" im Namen, ist das Encoding vorher schon kaputt gegangen. Die lassen sich in Mixxx aus dieser .m3u auch nicht abspielen, oder?

while read -r -d $'\n' f; do [ -f "$f" ] && echo rm "$f"; done < <(iconv -f CP1250 -t UTF-8 /Path/To/File/Müll.m3u | grep ^/media/MusikMixxx/)

DiamondFlow

(Themenstarter)

Anmeldungsdatum:
16. März 2023

Beiträge: 9

TNTMaster schrieb:

Ein paar erwischt du vielleicht so noch. Bei Pfaden mit "?" im Namen, ist das Encoding vorher schon kaputt gegangen. Die lassen sich in Mixxx aus dieser .m3u auch nicht abspielen, oder?

while read -r -d $'\n' f; do [ -f "$f" ] && echo rm "$f"; done < <(iconv -f CP1250 -t UTF-8 /Path/To/File/Müll.m3u | grep ^/media/MusikMixxx/)

Die Arbeit, auszuprobieren habe ich mir nicht gemacht. Nachdem ich den Befehl so verwendet habe, waren noch 22 übrig, die ich dann von Hand gelöscht habe = 0.16% aller markierten Dateien 😊

Vielen, vielen Dank nochmals an alle, die mir geholfen haben, vor allem an TNTMaster

-DiamondFlow

Antworten |