viele Dateien umbenennen - quasi Dateinamen "umdrehen"

OP (Firma: FULL PALATINSK) Persönliche Seite #4319415
Lesenswert?

Ich habe einen ganzen Haufen von mp3-Dateien, bei denen es sich als 
übersichtlicher herausgestellt hat, dass ein Teil des Dateinamens 
umgedreht sein müsste.

also z.B.
in einem Album-Ordner mit Namen wie

01 Interpret - Songname
02 Interpret - Ein Anderer Song
(...)

ich hätte es gerne so dass es stattdessen so aussieht:

01 Songname - Interpret
02 Ein Anderer Song - Interpret
(...)

Ich möchte das am liebsten unter Windows machen (win 7Pro)
könnte aber auch unter Ubuntu arbeiten.

mit "Ant Renamer" hab ich schon etliches herumprobiert,
komme da aber zu keinem brauchbaren Ergebnis.

Sinn des ganzen:
Ich finde das ziemlich unübersichtlich, wenn Player es nur schaffen, die 
ersten paar Zeichen eines Dateinamens im Display darzustellen.
z.B. in meinem Autoradio ist das so.
Ich würde da immer gerne gleich sehen können, wie ein Song heisst.

Gibt es ein Tool, dass mir die Zählung am Anfang des Dateinamens 
unbeachtet lässt,
aber alles zwischen den Trennungen "-" austauscht, quasi umklappt?
Gast #4319418
Lesenswert?

▶ J-A von der H. schrieb:
> Gibt es ein Tool, dass mir die Zählung am Anfang des Dateinamens
> unbeachtet lässt,
> aber alles zwischen den Trennungen "-" austauscht, quasi umklappt?

ja, totalcmd mit regulären Expression.


Ist es nicht sinnvoll eine Software einzusetzen die die MP3 tags 
auswertet und damit die Titel sinnvoll anzeigt? Warum wird überhaupt die 
Dateiname verwendet?
#4319460
Lesenswert?

▶ J-A von der H. schrieb:
> Ich habe einen ganzen Haufen von mp3-Dateien, bei denen es sich als
> übersichtlicher herausgestellt hat, dass ein Teil des Dateinamens
> umgedreht sein müsste.
>
> also z.B.
> in einem Album-Ordner mit Namen wie
>
> 01 Interpret - Songname
> 02 Interpret - Ein Anderer Song
> (...)

Nun, das ist die übliche Konvention.

> ich hätte es gerne so dass es stattdessen so aussieht:
>
> 01 Songname - Interpret
> 02 Ein Anderer Song - Interpret
> (...)

Meinetwegen. Nur so aus Interesse: Was gewinnt man dadurch?

Mir stellt sich die Frage, ob man dies unbedingt auf Dateiebene lösen 
muss. Anhand der Metadaten im mp3 sollte für das Abspielprogramm klar 
ersichtlich sein, was der Interpret und was der Name des Songs ist. In 
diesem Programm selbst, also in der Applikation, sollte man die Lieder 
auf verschiedenste Weise anzeigen und sortieren können. Dann sollte es 
an und für sich egal sein, wie herum die Dateinamen denn nun geordnet 
sind.

Peter II schrieb:
> Ist es nicht sinnvoll eine Software einzusetzen die die MP3 tags
> auswertet und damit die Titel sinnvoll anzeigt? Warum wird überhaupt die
> Dateiname verwendet?

Eben.
OP (Firma: FULL PALATINSK) Persönliche Seite #4319540
Lesenswert?

Rufus Τ. F. schrieb:
> Und es ist sicher, daß hier wirklich der Dateiname verwendet wird und
> nicht Informationen aus den mp3-Tags?
>
> Hast Du das überprüft?

ja. mit vielen von mir selbst erstellten mp3 Songs,
denen ich sonst keine weiteren Infos im Tag verpasst habe.
bin mir aber auch relativ sicher, dass das Autoradio ohnehin nur die 
Dateinamen anzeigen kann.

wie gesagt, es gibt halt "blöde" Player.
die haben nur eine Zeile zur Verfügung und lösen das dann auch nicht mit 
einer Laufschrift, wenns ein längerer  Dateiname ist.
Gast #4319617
Lesenswert?

Mal abgesehen von perl, python, lua, tcl, sed, ruby, ... geht das am 
einfachsten mit sed oder awk. (sollte auch unter Windows verfuegbar 
sein: z.B. cygwin oder msys)

Hier ein kleines Beispiel (mit nur einem Dateinamen getestet):
1
ls *.mp3 | awk '/^[0-9]+.*\.mp3/ {old=$0 ; new=gensub("^([[:digit:]]+) ([^-].*) - ([^-].*)(\.mp3)","\\1 \\3 - \\2\\4","G") ; print "mv \"" old " \"" new"\""}'

Allerdings sind Leerzeichen in Dateinamen meist suboptimal (bitte kein 
Flamewar). Diese koennen durch ein
1
gsub(" ","_",new) ;
 vor dem print durch _ ersetzt werden.

Wenn die Ausgabe dann so in Ordnung ist, muss nur noch ein
1
| bash
 angefuegt werden.

Backups sind natuerlich auch immer eine gute Idee.
Persönliche Seite #4319688
Lesenswert?

▶ J-A von der H. schrieb:
> ja. mit vielen von mir selbst erstellten mp3 Songs, denen ich sonst
> keine weiteren Infos im Tag verpasst habe.
> bin mir aber auch relativ sicher, dass das Autoradio ohnehin nur die
> Dateinamen anzeigen kann.

Hmm. Das aber ist naheliegend, daß auf irgendwas zurückgegriffen werden 
muss, wenn die Dateien keine Tags enthalten.

Da würde ich ja erst mal den Gegenversuch anstellen - also eine Datei 
mit vernünftigen Tags versehen und als "bla.mp3" benennen. Wenn dann 
Dein Autoradio wirklich nur "bla" anzeigt, lohnt Dein Aufriss.
Gast #4319759
Lesenswert?

▶ J-A von der H. schrieb:
> so wie es aussieht werde ich sowieso mindestens ein paar Stunden daran
> sitzen.

Oder Minuten, bzw. Sekunden:
1
find . -name '*.mp3' | awk '{interpret=gensub("^.*[/]*[[:digit:]]+ ([^-].*) - [^-]*\.mp3","\\1",1) ; titel=gensub(".* - ([^-]*).mp3","\\1",1); print "mp3info -t \"" titel "\" -a \"" interpret "\" \"" $0"\""}' | bash

mp3info muss natuerlich installiert sein und eventuell muss "titel" und 
"interpret" vertauscht werden.

Juergen
Gast #4319781
Lesenswert?

Schau Dir mal "Bulk Rename Utility" an, Windows, Freeware.

Damit müsste es gehen, evtl. mit der Regular-Expressions Funktion.

Gibt ein Beispiel dazu mit Erklärung in der Hilfe:
"Assume you have a file called Program Files,
and you wish to swap the names around (e.g. Files Program).
A Regular Expression which performs this task is :

       ^([A-Z][a-z]*) ([A-Z][a-z]*)

Let us break this down into components: ... "


mfG Willi
Gast #4325805
Lesenswert?

https://wiki.ubuntuusers.de/MMV
Schau Dir mal das unterste Beispiel an, #1 ist der Inhalt des ersten *.
Beim Leerzeichen bin ich mir nicht sicher, aber beim Rest wäre es dann
mmv "*-*" "#2-#1"
Das Leerzeichen muss wahrscheinlich escaped werden, evtl. mit \ , oder 
einfach mal so probieren.
mmv "*\ *-*" "#1\ #3-#2"
mmv "* *-*" "#1 #3-#2"

Das geht dann auch rekursiv usw., am besten mal die man-page anschauen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren