Hallo liebe Liste, ich möchte euch hiermit um Hilfe bitten, da ich im Moment nicht viel Zeit und leider nicht genügend kenntnisse in der Shellprogramierung hab... :( Ich suche eine möglichkeit, bzw einen Code-Schnipsel, der in der Lage ist, alle Dateien in einem Verzeichniss nach einem bestimmten Schema einfach durchzunummerieren / umzubenennen: j-2001-10-02-XX.jpg An stelle der beiden XX soll von 00 an hochgezählt werden. Es sind auf alle Fälle unter 100 Dateien - also in jedem Fall zweistellig. Die Dateien sollten vorher schon nach Namen sortiert werden. (Bei PHP war das zusätzlich nötig, keine Ahnung wie sich das so realisieren lässt... Vielen vielen dank schon mal im voraus! Mfg, Christian -- _______________________________________________________________________ Support your local Club! ...visit: http://www.butanclub.de/
On Sam, 06 Okt 2001, Christian Schneider wrote:
Ich suche eine möglichkeit, bzw einen Code-Schnipsel, der in der Lage ist, alle Dateien in einem Verzeichniss nach einem bestimmten Schema einfach durchzunummerieren / umzubenennen:
j-2001-10-02-XX.jpg
Ungetestet mal eben schnell hingetippt: datum=`date "+%Y-%m-%d"` i=0; for name in `find . -type f -iname "*.jpg" | sort -u` do i=$[i+1] newname="j-${datum}-`printf '%02i' $i`.jpg" mv -i "$name" "$newname" done Noch Fragen? -dnh -- 161: Internetpräsenz Irgendwas machen, weil das andere auch machen. (Martin Schmitt)
Hi... Am Samstag, 6. Oktober 2001 03:28 schrieben Sie:
Ungetestet mal eben schnell hingetippt:
datum=`date "+%Y-%m-%d"` i=0; for name in `find . -type f -iname "*.jpg" | sort -u` do i=$[i+1] newname="j-${datum}-`printf '%02i' $i`.jpg" mv -i "$name" "$newname" done
Funzt prima! Hab die Zeile "i=$[i+1]" einfach ans ende der Schleife gesetzt und jetzt fängt er sogar mit 00 für die erste Datei an. Jetzt aber noch eine erweiternde Frage dazu: Das Datum für die Dateien ist nicht das aktuelle, und ich würde normalerweise in diesem Fall einfach die Variable "datum" von Hand mit dem entsprechenden String füllen. - Lässt sich diese Variable eigentlich auch beim Aufruf des Scripts mit übergeben? Mfg, Christian -- _______________________________________________________________________ Support your local Club! ...visit: http://www.butanclub.de/
Hi Christian On Sat, Oct 06, 2001 at 01:42:31PM +0200, Christian Schneider wrote:
Das Datum für die Dateien ist nicht das aktuelle, und ich würde normalerweise in diesem Fall einfach die Variable "datum" von Hand mit dem entsprechenden String füllen. - Lässt sich diese Variable eigentlich auch beim Aufruf des Scripts mit übergeben?
$1 ist die erste übergebene Variable $9 die neunte, shift schmeisst die erste weg und lässt die Anderen aufrücken. -- MfG. Falk
On Sam, 06 Okt 2001, Christian Schneider wrote:
Am Samstag, 6. Oktober 2001 03:28 schrieben Sie:
datum=`date "+%Y-%m-%d"` i=0; for name in `find . -type f -iname "*.jpg" | sort -u` do i=$[i+1] newname="j-${datum}-`printf '%02i' $i`.jpg" mv -i "$name" "$newname" done
Funzt prima! Hab die Zeile "i=$[i+1]" einfach ans ende der Schleife gesetzt und jetzt fängt er sogar mit 00 für die erste Datei an.
Ja klar, ich dachte halt, es soll mit 01 beginnen ;)
Jetzt aber noch eine erweiternde Frage dazu: Das Datum für die Dateien ist nicht das aktuelle, und ich würde normalerweise in diesem Fall einfach die Variable "datum" von Hand mit dem entsprechenden String füllen. - Lässt sich diese Variable eigentlich auch beim Aufruf des Scripts mit übergeben?
Ja. datum="${1:-`date +%Y-%m-%d`}" ^ das ist $1 also das erste Argument. ${VARIABLE:-EXPR} testet darauf ob $VARIABLE ungesetzt oder leer ist und wenn ja, expandiert der ${}-Ausdruck zur Expansion von EXPR, wenn nein, wenn also $VARIABLE nicht-leer ist (im Falle von $1 wenn ein Argument uebergeben wurde), expandiert der ${}-Ausdruck zur Expansion von $1. Siehe man bash, nach ':-' suchen. -dnh -- hier ist es ja wie im Urlaub! Nix mehr zu tun. Kein Dau zu beerdigen. Kein Elch zu verjagen. Nicht mal ein kleiner Troll möchte sterben ´gehen. Na dann setz Ich mich mal hier auf die Friedhofsbank und geniesse die Ruhe. Ach ja ! Meine Froschpillen werden langsam knapp. [Woko° in dag°]
participants (3)
-
Christian Schneider
-
David Haller
-
Falk Sauer