[erledigt] Wie viele Dateinamen per script ändern?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
outis
Beiträge: 395
Registriert: 07.10.2005 12:28:01

Re: Wie viele Dateinamen per script ändern?

Beitrag von outis » 17.07.2016 22:56:08

niemand hat geschrieben:Ist der Kram denn wenigstens sauber getagged?
Leider nicht. Man glaubt gar nicht, welchen Wildwuchs und Unfug kommerzielle DL-Anbieter z.T. in die Tags schreiben.
LG

Jochen

outis
Beiträge: 395
Registriert: 07.10.2005 12:28:01

Re: Wie viele Dateinamen per script ändern?

Beitrag von outis » 18.07.2016 00:17:07

Mal sehen, wie weit wir damit kommen:

Code: Alles auswählen

name=$(echo "$fb"|sed 's/^[[:digit:]]*//;s/-[[:digit:]]*//;s/[[:punct:]]*//' )
Erste Tests sind vielversprechend.

$fb ist der aktuelle komplette Dateiname.
LG

Jochen

Benutzeravatar
hikaru
Moderator
Beiträge: 13585
Registriert: 09.04.2008 12:48:59

Re: Wie viele Dateinamen per script ändern?

Beitrag von hikaru » 18.07.2016 09:32:00

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. ;) ).
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.

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 Debianexfalsound/oder Debianeasytag an!

outis
Beiträge: 395
Registriert: 07.10.2005 12:28:01

Re: Wie viele Dateinamen per script ändern?

Beitrag von outis » 18.07.2016 22:31:42

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?
LG

Jochen

outis
Beiträge: 395
Registriert: 07.10.2005 12:28:01

Re: Wie viele Dateinamen per script ändern?

Beitrag von outis » 19.07.2016 01:01:26

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.
LG

Jochen

outis
Beiträge: 395
Registriert: 07.10.2005 12:28:01

Re: Wie viele Dateinamen per script ändern?

Beitrag von outis » 19.07.2016 23:27:31

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
LG

Jochen

Antworten