Hallo Andreas, On Thu, Jan 06, 2005 at 06:15:30PM +0100, Andreas Feile wrote:
Ich muß hier von Zeit zu Zeit eine Datei eindeutig benennen, und möchte das per Skript so lösen, daß einfach eine fortlaufende Zahl vergeben wird, deren Länge sich aber nicht ändern darf. Das Vorgehen wäre also etwa:
1. Wert der letzten Benennung aus einer Datei holen, sagen wir "000012345" 2. Datei entsprechend benennen 3. Wert um eins erhöhen, hier also "000012346" 4. Diesen Wert in die Datei zurückschreiben.
Vor allem Schritt 3 scheint mir problematisch wegen der führenden Nullen. Aber auch bei den anderen Schritten bin ich nicht ganz sicher, wie ich es lösen kann.
Kann mir jemand ein paar Stichpunkte nennen?
mkdir ttt cd ttt touch 00000123 00000124 00000125 00000126 A=`ls -1 | tail -n 1 | sed 's/^0*//g'`; let A="$A+1"; N=`printf %8s $A | sed 's/ /0/g'`; touch $N obiges Bsp. holt den Namen direkt von einem Dateilisting. Das funktioniert aber nur unter bestimmten Bedingungen. Wenn du es wie du schreibst über eine Logdatei lösen willst dann tail -n 1 Logdatei und das ls -1 weglassen. Außerdem kannst du dann den Dateinamen ohne führende 0000 eintragen und dir das halbe sed Geraffel sparen. Greetings Daniel -- Real Life ist wie Windows, man weiß nie, was als nächstes schief geht....