PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : führende Nullen wegbekommen



bernie_x
08-01-2003, 14:00
Hi Leute,

Ich hab ein kleine Problem mit der bash. Ich möchte mir selber einen "logrotate für arme" basteln, habe jedoch ein Problem mit "date".

Ich bekomme bei "date +%j" (day of year) für heute heraus: 008
wenn ich das weiter verwenden will und z.B 2 abziehen will, hätte ich das so gemacht
$(( $(date +%j) - 2))Das geht auch bis zum siebten Tag eines Jahres gut,... am 8. regt sich die bash auf. Klar, zwei Nuller vorne beschreiben ja ein oktales Zahlenformat. Nachdem mein Kenntnisse von regular Expressions nicht vorhanden sind, wollte ich mal fragen ob mir da bitte wer helfen könnte alle führenden Nullen wegzubekommen.

Danke im vorraus,
Ciao, Bernie

Jasper
08-01-2003, 15:19
Original geschrieben von bernie_x
Hi Leute,

Ich hab ein kleine Problem mit der bash. Ich möchte mir selber einen "logrotate für arme" basteln, habe jedoch ein Problem mit "date".

Ich bekomme bei "date +%j" (day of year) für heute heraus: 008
wenn ich das weiter verwenden will und z.B 2 abziehen will, hätte ich das so gemacht
$(( $(date +%j) - 2))Das geht auch bis zum siebten Tag eines Jahres gut,... am 8. regt sich die bash auf. Klar, zwei Nuller vorne beschreiben ja ein oktales Zahlenformat. Nachdem mein Kenntnisse von regular Expressions nicht vorhanden sind, wollte ich mal fragen ob mir da bitte wer helfen könnte alle führenden Nullen wegzubekommen.


versuchs mal so:

date -d '2 days ago' +%j

die führenden nullen bleiben zwar, du hast aber den wert, den du wolltest.

ansonsten:

D=$(date +%j)
D=${D##*0}
D=$((D-2))

alles untested.

-j

bernie_x
08-01-2003, 15:55
Hi,

Vielen Dank !! Jetzt funktionierts!

Ciao, Bernie