Holger Janßen-Kroll

Beratung · Entwicklung · Internet

Einzeiler: Dateien durchnummerieren

Machmal kommt es vor, dass man eine Sammlung von Dateien einfach dem Namen nach durchnummerieren möchte, um z.B. verräterische Dateinamen loszuwerden. (Beispiel: Mein konkreter Anlass war das Hochladen von Bildern auf ein Online-Portal, die Dateinamen enthielten aber Informationen zu Datum, Ort usw., ein weiteres Beispiel wäre die Nummerierung nach dem Erstellungsdatum.)

Der folgende Einzeile löst das Problem auf einfache Weise.

Das ganze ist eher eine Demonstration, dass sich einfach zu formulierende Aufgaben (Numeriere alle Dateien) durchaus auch mit recht einfachen Mitteln umsetzen lassen.

Das Skript

NUMBER=0;
for file in $(ls); do
	NUMBER=$(($NUMBER+1));
	mv $file ${NUMBER}.endung;
done;

Erläuterungen

Ok, der Übersicht halber sind es doch 5 Zeilen geworden, aber auf einer Eingabezeile könnte man es durchaus in eine Zeile packen.

Das ganze gestaltet sich ziemlich einfach. Die Schleife benennt einfach alle im ls-Kommando aufgelisteten Dateien mittels des mitgeführten Zählers um. Das ls-Kommando lässt sich natürlich beliebig anpassen, wie auch der Name der Zieldatei.

Zu beachten ist vielleicht noch die Syntax der Rechenoperation in Bash: $(( AUSDRUCK )).

Zurück


Einen Kommentar schreiben

Was ist die Summe aus 1 und 8?