Archiv verlassen und diese Seite im Standarddesign anzeigen : [bash]: Höchste Dateinummer finden?
Hallo,
ich hab ein Verzeichnis in dem Dateien mit fortlaufenden Nummern enthalten sind, also:
Bild_456.jpg
Bild_457.jpg
Bild_458.jpg
usw.
Ich möchte gerne mit einem Skript die weiteren Fotos bei der nächsten Nummer weiter nummerieren. Wie das Nummerieren funktioniert hab ich mir schon aus anderen Beiträgen raus gesucht. Aber wie finde ich die derzeit größte Nummer? Kann mir da bitte jemand einen Tipp geben?
Schöne Grüße
da Beda
peschmae
12-04-2005, 16:38
Nehmen wir mal an du bist im Verzeichnis mit den Bildern - da machst du das:
BIGGEST=0
for f in *; do
f=${f#Foto_}
f=${f%.jpg}
if [ $f -gt $BIGGEST ] ; then
BIGGEST=$f
fi
done
BIGGEST ist die Variable die die grösste Nummer enthält. Dann eine Scheife die alle Dateien durchgeht.
f=${f#Foto_} schneidet von vorne im Dateinamen den Foto_ weg (siehe auch da: http://www.tldp.org/LDP/abs/html/parameter-substitution.html#PATTMATCHING)
f=${f%.jpg} von hinten das .jpg
bleibt noch die Nummer die mit $BIGGEST verglichen wird.
MfG Peschmä
vielen Dank, das funktioniert.
da Beda
RapidMax
14-04-2005, 21:31
Normalerweise sortiert schon ls. Allerdings nicht nummerisch, was sich aber nur auswirkt, wenn du nicht immer dreistellige Zahlen hast (Bild_9.jpg, Bild_1001.jpg, etc.):
ls | tail -n 1
Soll nummerisch sortiert werden, hilft folgender Befehl:
ls |sort -t '_' -n -k 2 | tail -n 1
Gruss, Andy
...
f=${f%.jpg} von hinten das .jpg
...
Gibt es eine ähnlich einfache Methode immer die letzten 4 Zeichen einer Variable abzuschneiden? Dh ich möchte immer die Dateiendung (jpg oder mpg) und den Punkt abschneiden.
Auf der Seite die du angegeben hast finde ich nur die Erweiterung ab einer bestimmten Position.
Schöne Grüße
da Beda
sterne helfen ganz gut in der bash
also z.B. so
${f%.*}
schneidet alles ab was nach dem punkt kommt
moe
sterne helfen ganz gut in der bash
Irgendwie denk ich einfach zu kompliziert für die Bash.
Vielen Dank
da Beda
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.