Führende Nullen in Dateinamen unter Linux hinzufügen

Wenn Sie viele Dateien haben, die durchnummeriert sind, aber ohne führende Nullen, kann die Sortierung manchmal durcheinander geraten. Ein typisches Beispiel könnte eine Sammlung von Bilddateien sein, die als img_1.jpg, img_2.jpg, img_100.jpg usw. nummeriert sind. In diesem Fall wird img_100.jpg vor img_2.jpg sortiert, da die Sortierung als Zeichenkette und nicht numerisch erfolgt.

Dieses Problem lässt sich lösen, indem man ein einfaches Bash-Skript verwendet, das durch alle Dateien geht und diejenigen umbenennt, die weniger als eine bestimmte Anzahl von Ziffern in ihrem Namen haben, in unserem Fall drei. Hier ist, wie Sie das tun können:

for file in img_*.jpg; do
    # Extrahiere die Nummer aus dem Dateinamen
    num=$(echo $file | grep -o -E '[0-9]+')

    # Überprüfe, ob die Nummer weniger als 3 Stellen hat
    if [ ${#num} -lt 3 ]; then
        # Füge führende Nullen hinzu, um die Länge auf 3 zu bringen
        new_num=$(printf "%03d" $num)

        # Generiere den neuen Dateinamen
        new_file="img_${new_num}.jpg"

        # Umbenennen der Datei
        mv $file $new_file
    fi
done

Dieses Skript extrahiert den numerischen Teil jedes Dateinamens, prüft seine Länge und fügt gegebenenfalls führende Nullen hinzu, um die Länge auf drei Stellen zu bringen. Es ignoriert Dateien, die bereits eine dreistellige Nummer haben.

Bitte beachten Sie, dass das Skript davon ausgeht, dass alle Ihre Dateien im Format img_N.jpg vorliegen, wobei N eine Zahl ohne führende Nullen ist. Wenn Ihr Dateiformat abweicht, müssen Sie das Skript entsprechend anpassen.

Zudem sollten Sie beachten, dass dieses Skript keine Sicherheitsmaßnahmen implementiert, um sicherzustellen, dass keine Dateien überschrieben werden. Stellen Sie daher sicher, dass Sie eine Sicherungskopie Ihrer Dateien haben, bevor Sie das Skript ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert