Datum: 2002-08-08
Quelle: suse-linux
Wie kann man sich aus den vorhandenen ID3-Tags der MP3-Sammlung ein Inhaltsverzeichnis basteln? Neben den diversen mehr oder weniger komfortablen grafischen Programmen gibt es ein schnuckeliges kleines Kommandozeilen-Tool namens mp3info, das man für diese Aufgabe perfekt nutzen kann. Im vorliegenden Fall sollte das Ergebnis auf einem Drucker erscheinen.
# Inhalt eines Verzeichnisses / TOC of a single directory for i in *.mp3; do mp3info -p "%02n %t %a\n" "$i" done | sort | lpr # Inhalt rekursiv ueber einen Verzeichnisbaum / content recursively for a directory tree base_dir=`pwd` find . -type d -mindepth 3 -print | while read d; do cd "$base_dir/$d" for i in *.mp3; do mp3info -p "%02n %t %a\n" "$i" done | sort | lpr done # das Gleiche, aber nur ein Durckauftrag / the same, but only one print job base_dir=`pwd` find . -type d -mindepth 3 -print | while read d; do cd "$base_dir/$d" basename "$d" for i in *.mp3; do mp3info -p "%02n %t %a\n" "$i" || break done | sort echo done | lpr
Die Schleife im ersten Beispiel durchsucht in einem Verzeichnis alle MP3-Dateien und gibt formatiert die Nummer des Tracks,
den Titel und den Interpreten aus. Will man dies für eine ganze Verzeichnis-Hierarchie machen (bei mir gilt die Struktur
Anfangsbuchstabe/Interpret/Album), dann geht das wie im 2. Beispiel.
Für jedes aufgefundene Verzeichnis wird eine Liste erstellt und als separater Druckauftrag zu Papier gebracht. Wenn Du eine
andere Organisation auf Deiner Platte hast, musst Du unter Umständen den Parameter -mindepth 3
entsprechend anpassen.
Das dritte Schnipselchen verzichtet darauf, für jedes gefundene Verzeichnis einen eigenen Druckauftrag zu starten und baut
stattdessen einen einzelnen Job auf. Wie zu sehen ist, werden nur die Pipes zum Weiterreichen der Ausgaben ein wenig anders angeordnet.