Dateien nach einem bestimmten Schema umbenennen

compukortschnoi

Aktives Mitglied
Thread Starter
Dabei seit
03.09.2004
Beiträge
213
Reaktionspunkte
4
Hallo Ihr!

Ich möchte einen Riesenhaufen an Dateien umbenennen. In allen Dateinamen ist ein Datum enthalten, und zwar nach dem Schema dd.mm.yyyy. Diesen Teil möchte ich nun in jedem Dateinamen umdrehen, also yyyy.mm.dd.

Welches Tool kann sowas? Ich nehme stark an, dass man das vielleicht sogar mit Bordmitteln von Yosemite hinbekommt. Ich habe allerdings keinen blassen Dunst von regulären Ausdrücken o.ä. Ein Freeware-Tipp wäre mir deswegen lieber... :)

Ich freue mich auf Eure Antworten.

Viele Grüße
compukortschnoi
 
Auf Windowsebene fällt mir spontan Total Commander ein. Ein Äquivalent für OSX ist CRAX Commander, jedoch ist der Kostenpflichtig...
 
Probiere mal BetterRename. Damit kann man fast alles erledigen
 
Möglicherweise kann das auch NameMangler, da gibt es eine "Advanced"-Möglichkeit.
 
ich habe mir genau dafür mit "A Better Finder Rename" ein Droplet erstellt... klappt super, Dateien aufs Icon ziehen und fertig :)
 
Also, bei A Better Finder Rename und bei NameMangler braucht man reguläre Ausdrücke, und die kann ich mir für diese einmalige Aktion nicht extra draufschaffen.
 
Und bei "Rename" weiß ich auch nicht, wie ich bewerkstelligen kann, was ich will.
 
Name Mangler ist der beste Massenimbenenner, der mir bislang untergekommen ist. Ich dürfte so ziemlich alle ausprobiert haben. Allerdings hab ich meine aktive Suche vor 5 Jahren mi NM beendet. :)

Der Advanced Mode ist hier für mich das größte Argument gewesen. Damit kann man sehr gut komplexere Operationen machen, wie Vertauschungen oder Umbenennungen mit Bestandteilen aus dem übergeordneten Ordnernamen. Die Vorschau dürften wohl mittlerweile alle guten haben.
 
In allen Dateinamen ist ein Datum enthalten, und zwar nach dem Schema dd.mm.yyyy. Diesen Teil möchte ich nun in jedem Dateinamen umdrehen, also yyyy.mm.dd
Unabhängig vom verwendeten Hilfsmittel rate ich (sofern es keinen speziellen Grund dagegen gibt) dazu, beim Umbenennen das Datum gleich nach DIN ISO 8601 mit Bindestrichen (YYYY-MM-DD) oder kompakt aneinander (YYYYMMDD) schreiben zu lassen. (Allerdings sollten bei Letzterem dann Datumsangaben auch immer achtstellig sein; unbekannte Tages oder Monatswerte sind dann mit Nullen aufzufüllen, damit’s die Sortierung – falls das Datum vorne im Dateinamen steht – nicht zerreißt.)
 
Hallo agrajag,

wie würdest Du denn mein Problem in Name Mangler umsetzen?

Sagen wir, ich habe drei Dateien:

Tango - 01.01.1970.pdf
Eisenburg - 03.10.1990.pdf
Olympia - 09.08.2015.pdf

Die Dateinamen sind alle unterschiedlich lang, aber sie sind alle PDFs und haben als letzten Eintrag vor dem "." das Datum. Dieses soll nun in die Reihenfolge yyyy.mm.dd gebracht werden.

Wie mache ich das mit Name Mangler?

Viele Grüße
compukortschnoi
 
Zuletzt bearbeitet:
So auf die Schnelle würde das hier gehen:
Code:
[concatenate
  [findRegularExpression "(.*)([0-9]{2}).([0-9]{2}).([0-9]{4})" in <name> replace with "$1 $4-$3-$2"]
  [lowercase <.extension>>]
]
Da tauscht einfach nur die Datumselemente um. Da ist bestimmt noch Raum für Verbesserung. Ich mache zu wenig mit regulären Ausdrücken, daß mir die speziellen Kniffe nicht so geläufig sind.

Edit: *ächs* das war wohl "etwas" umständlich. Ich korrigiere das mal direkt in diesem Posting, in der Hoffnung, daß es keiner gesehen hat. :)
 
Zuletzt bearbeitet:
Und
Code:
[concatenate
  [findRegularExpression "(.*)(\ -\ )([0-9]{2}).([0-9]{2}).([0-9]{4})"
    in <name> replace with "$5-$4-$3 $1"]
  [lowercase <.extension>>]
]
ändert den Namen mit voranstehendem Datum und entferntem Bindestrich: z.B. "1989-10-03 Eisenburg"

Das Datumsformat wird übrigens nicht überprüft. Unplausible Daten, wie 55.33.0022 werden einfach als Datum übernommen. Man kann das Ganze beinahe beliebig komplex ausfeiern, aber ich denke, das dürfte reichen, solange die Quelldateien sich an das von dir angegebene Format halten.
 
Also, bei A Better Finder Rename und bei NameMangler braucht man reguläre Ausdrücke, und die kann ich mir für diese einmalige Aktion nicht extra draufschaffen.
Das "Draufschaffen" auf den Rechner klappt mit ein paar Hieben auf die Tastatur.
Das Draufschaffen auf die grauen Zellen … mühsamer (ich weiß das), langfristig aber sicher lohnend. Ist eine faszinierende Sache und an sich gar nicht so kompliziert, wie es aussieht.
 
Code:
#!/usr/bin/perl

use strict;
use warnings;

sub parse_filenames {
    my @res;

    foreach my $file (@_) {
        if ($file =~ /^\s*([^\s]*)\s*-\s*(\d{2})\.(\d{2})\.(\d{4})(\..*)/) {
            my %match = (
                orig => $file,
                name => $1,
                day => $2,
                month => $3,
                year => $4,
                ext => lc($5),
            );

            push(@res, \%match);
        }
        else {
            print STDERR "Filename '$file' does not match pattern\n";
        }
    }

    return @res;
}

foreach my $match (parse_filenames(@ARGV)) {
    my $orig = $match->{orig};

    my $name = sprintf("%04d-%02d-%02d - %s%s",
        $match->{year},
        $match->{day},
        $match->{month},
        $match->{name},
        $match->{ext});

    print "mv '$orig' '$name'\n";
}

Code:
$ ./rename.pl 'Eisenburg - 03.10.1990.pdf'
mv 'Eisenburg - 03.10.1990.pdf' '1990-03-10 - Eisenburg.pdf'

$ ./rename.pl Desktop
Filename 'Desktop' does not match pattern

Es geht cooler mit "map" und was weiss ich.
Aber das geht auch.

Oben wo die Einzelteile des Namens auseinandergenommen werden könnte man Groß- und Kleinschreibung ändern,
Monatsnamen mit angeben, etc.

Alles umsonst.
 
Lieber pmau, lieber agrajag,

wow, ich bin total begeistert von soviel Hilfsbereitschaft. Vielen Dank, Ihr beiden!! :)

Ich habe agrajags Code in das Advanced-Feld von Name Mangler gehauen und - schwupps! - war's genauso, wie ich's haben wollte. Echt klasse. Und zum Spaß probier ich es jetzt auch nochmal mit Perl. :)

Tausend Dank,
compukortschnoi
 
Lieber pmau, lieber agrajag,

wow, ich bin total begeistert von soviel Hilfsbereitschaft. Vielen Dank, Ihr beiden!! :)
Jetzt noch auf "Gefällt mir" unter dem entsprechenden Beitrag klicken und alles passt. ;)

Es sind wirklich interessante Lösungsansätze. Persönlich habe ich für genau solche "A Better Finder Rename" gekauft. Auch wenn ich das Terminal fast täglich nutze, ist immer wieder faszinierend was man im Terminal alles anstellen kann - wenn man Ahnung hat.
 
Zurück
Oben Unten