Bilder umbenennen

 11. August 2008 •  Ekkart •  Computer •  ToDo

Heute mal praktische Computerhilfe: das Wochenende bestand aus “Bilder sortieren” und “Sortierte Bilder umbenennen”. Dabei kann ein Computer helfen. Die Tips stehen auch auf ekkart.de.

Bilder sortieren

Zum Sortieren der Bilder empfiehlt es sich, die Dateinamen vorne um eine laufende Nummer zu ergänzen. Beispiel: 200 Bilder sortieren, jedem Bild einen Präfix der Form “####_” geben, wobei “#” für eine Zahl steht. Warum vierstellig? In Zehnerschritten numerieren erlaubt es, Bilder zwischen zwei Bildern einzufügen. Warum der Unterstrich? Wegen des späteren automatischen Entfernens.

Als Programm habe ich krename genommen, sehr einfach und intuitiv zu bedienen. Kann zwar nur in Einerschritten hochzählen, aber der Zahl einfach “0_” anhängen und gut.

Nach dem Sortieren sollen die Bilder eine fortlaufende Nummer vorne erhalten, der Rest soll umformatiert werden. Die Nummer wieder mit krename einfügen und dann mit rename weiterarbeiten.

Umbenennen

Wie bereits erwähnt, setze ich rename ein. Wichtigster Schalter ist “–no-act“, denn so zeigt das Programm an, was es tut, bevor es tatsächlich umbenennt. Alle folgenden Beispiele sind mit “–no-act“ angegeben, damit man sie kopieren und einsetzen kann, ohne etwas kaputt zu machen.

Der Schalter “–verbose“ gibt aus, welche Dateien wie umbenannt wurden. rename arbeitet mit regulären Ausdrücken, ist also sehr mächtig, aber etwas komplizierter zu bedienen, wenn man reguläre Ausdrücke nicht kennt.

Beispiel, Problemdateien seien: 001_0010_20060810_Test_2134.JPG<br />002_2610_20060810_Zweite_6534.JPG

Dateiendung verbessern: $ rename --no-act --verbose 's/JPG/jpg/' *.JPG<br />001_0010_20060810_Test_2134.JPG renamed as 001_0010_20060810_Test_2134.jpg<br />002_2610_20060810_Zweite_6534.JPG renamed as 002_2610_20060810_Zweite_6534.jpg

Zweite Nummer entfernen (4 Zahlen zwischen zwei “_”): $ rename --no-act --verbose 's/_[0-9]{4}_/_/' *.jpg<br />001_0010_20060810_Test_2134.jpg renamed as 001_20060810_Test_2134.jpg<br />002_2610_20060810_Zweite_6534.jpg renamed as 002_20060810_Zweite_6534.jpg

Letzte Nummer entfernen (4 Zahlen zwischen “_” und “.”): $ rename --no-act --verbose 's/_[0-9]{4}[\.]/./' *.jpg<br />001_20060810_Test_2134.jpg renamed as 001_20060810_Test.jpg<br />002_20060810_Zweite_6534.jpg renamed as 002_20060810_Zweite.jpg

Datum korrekt formatieren (8 Zahlen mit “-” trennen und als T-M-J schreiben): $ rename --no-act --verbose 's/([0-9]{4})([0-9]{2})([0-9]{2})/$3-$2-$1/' *.jpg<br />001_20060810_Test.jpg renamed as 001_10-08-2006_Test.jpg<br />002_20060810_Zweite.jpg renamed as 002_10-08-2006_Zweite.jpg

Datum (unformatiert) nach hinten schieben (8 Zahlen, die mit “_” beginnen nach hinten (vor “.jpg”) schieben): $ rename --no-act --verbose 's/(_[0-9]{8})(.*)\.jpg$/$2$1\.jpg/' *.jpg<br />001_20060810_Test.jpg renamed as 001_Test_20060810.jpg<br />002_20060810_Zweite.jpg renamed as 002_Zweite_20060810.jpg

Datum (formatiert) nach hinten schieben (Datum in T-M-J, das mit “_” beginnt nach hinten (vor “.jpg”) schieben): $ rename --no-act --verbose 's/(_[0-9]{2}-[0-9]{2}-[0-9]{4})(.*)\.jpg$/$2$1\.jpg/' *.jpg<br />001_10-08-2006_Test.jpg renamed as 001_Test_10-08-2006.jpg<br />002_10-08-2006_Zweite.jpg renamed as 002_Zweite_10-08-2006.jpg

Das Ganze sieht auf den ersten Blick kompliziert aus, geht aber. Mit etwas Einarbeitungszeit geht das sehr schnell von der Hand und ist ein mächtiges Werkzeug.

Schnell geht auch, “2008” in “08” zu ändern: $ rename --no-act --verbose 's/2008/08/' *.jpg Es muss also nicht immer ein komplizierter regulärer Ausdruck sein.