Leider nicht. Man glaubt gar nicht, welchen Wildwuchs und Unfug kommerzielle DL-Anbieter z.T. in die Tags schreiben.niemand hat geschrieben:Ist der Kram denn wenigstens sauber getagged?
[erledigt] Wie viele Dateinamen per script ändern?
Re: Wie viele Dateinamen per script ändern?
LG
Jochen
Jochen
Re: Wie viele Dateinamen per script ändern?
Mal sehen, wie weit wir damit kommen:
Erste Tests sind vielversprechend.
$fb ist der aktuelle komplette Dateiname.
Code: Alles auswählen
name=$(echo "$fb"|sed 's/^[[:digit:]]*//;s/-[[:digit:]]*//;s/[[:punct:]]*//' )
$fb ist der aktuelle komplette Dateiname.
LG
Jochen
Jochen
Re: Wie viele Dateinamen per script ändern?
Das hilft dir nicht, denn es gibt auch Titel die Nummern als Teil des Namens enthalten. Spontan fallen mir da "7 Shots" und "Room 24" von Volbeat ein.outis hat geschrieben:Helft mir bitte mal auf die Sprünge: Ich habe zwar mittels tr alles, was kein Buchstabe ist, aus dem Dateinamen (übungshalber als String) entfernen können. Aber wie bekomme ich es hin, dass das Gelumpe nur bis zum ersten Auftreten eines Buchstabens weggeschnitten wird (um den Fall (Disc1) kümmern wir uns später. ).
Ich würde ebenfalls vorschlagen, die Dateinamen aus sauberen(!) Tags zu generieren. Hast du auch die nicht, dann hast du ohnehin eine Menge Handarbeit vor dir, denn ohne halbwegs saubere Eingangsdaten kann man erfahrungsgemäß bei der Entwicklung des Scripts gar nicht so blöd denken, um alle Sonderfälle sinnvoll abzufangen.
Es hat zwar nichts mit Scripting zu tun, aber schau dir mal exfalsound/oder easytag an!
Re: Wie viele Dateinamen per script ändern?
Im Prinzip hast ja Recht. aber einige hundert Verzeichnisse mit einem Programm wie mp3tag durchzugehen, ist langweilig im Vergleich zum Basteln eines scripts.
Das entwickelt sich übrigens.
Allerdings habe ich im Moment ein Problem mit einem Vergleich.
Wenn ein Dateiname mit einer Ziffernfolge beginnt, die mit der Tracknummer identisch ist, braucht's ja keine zusätzliche Tracknummer vorweg.
Also soll geprüft werden, ob die ersten zwei Zeichen eines Dateinamens identisch mit der Tracknummer sind.
Folglich habe ich zwei Variablen: tn für tracknummer und name1 für die ersten zwei Zeichen.
Wie vergleiche ich die nun auf Gleichheit?
if [ "$tn" == "$name1" ] ergibt ein unexpected operator für die Tracknummer,
if [ "$tn" -eq "$name1" ] ergibt ein illegal number für name1
Eigentlich logisch, da unterschiedliche Dinge verglichen werden. In anderen Sprachen würde man z.B. die beiden Werte als string deklarieren. Ich habe nur noch nichts gefunden, ob und wie man das für die bash machen kann. Geht das überhaupt? Oder welche andere Lösung wäre möglich?
Das entwickelt sich übrigens.
Allerdings habe ich im Moment ein Problem mit einem Vergleich.
Wenn ein Dateiname mit einer Ziffernfolge beginnt, die mit der Tracknummer identisch ist, braucht's ja keine zusätzliche Tracknummer vorweg.
Also soll geprüft werden, ob die ersten zwei Zeichen eines Dateinamens identisch mit der Tracknummer sind.
Folglich habe ich zwei Variablen: tn für tracknummer und name1 für die ersten zwei Zeichen.
Wie vergleiche ich die nun auf Gleichheit?
if [ "$tn" == "$name1" ] ergibt ein unexpected operator für die Tracknummer,
if [ "$tn" -eq "$name1" ] ergibt ein illegal number für name1
Eigentlich logisch, da unterschiedliche Dinge verglichen werden. In anderen Sprachen würde man z.B. die beiden Werte als string deklarieren. Ich habe nur noch nichts gefunden, ob und wie man das für die bash machen kann. Geht das überhaupt? Oder welche andere Lösung wäre möglich?
LG
Jochen
Jochen
Re: Wie viele Dateinamen per script ändern?
Ah, womögliche Lösung des Problems:
Prüfen, ob name1 ein integer ist und nur dann den Vergleich durchführen. Wenn name1 kein integer ist, kann's keine tracknummer sein.
Mal sehen, ob das konsequent klappt.
Prüfen, ob name1 ein integer ist und nur dann den Vergleich durchführen. Wenn name1 kein integer ist, kann's keine tracknummer sein.
Mal sehen, ob das konsequent klappt.
LG
Jochen
Jochen
Re: Wie viele Dateinamen per script ändern?
So, weitgehend erledigt, der Rest folgt bei Gelegenheit = wenn ich mal wieder Zeit habe. Für Interessierte: Ausgangspunkt war das hier vorgenommene Verfahren:
http://www.unix.com/302416202-post4.htm ... ffff101895
Es musste halt "nur" das script angepasst werden
http://www.unix.com/302416202-post4.htm ... ffff101895
Es musste halt "nur" das script angepasst werden
LG
Jochen
Jochen