Bash: Sekundendifferenz rechnen
Es sind 2 Variablen gegeben, die ein Datum im folgenden Format enthalten, zB ANFANG="2011:09:25 10:39:40" ENDE="2011:09:25 10:40:10" Wie berechne ich die Sekundendifferenz am einfachsten? -- Αl -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Al, Am 09.01.2012 21:30, schrieb Аl Воgnеr:
Es sind 2 Variablen gegeben, die ein Datum im folgenden Format enthalten, zB
ANFANG="2011:09:25 10:39:40" ENDE="2011:09:25 10:40:10"
Wie berechne ich die Sekundendifferenz am einfachsten?
Darf es Bash sein? ;-) Ich habe gerade mal auf die Schnelle etwas heruntergeschrieben. Du musst nur das Datum etwas umformen, dann jage es durch den date-Tool, eine kleine Gleichung bauen und pipe es dann mit dem bc-Tool. Tata! Heraus kommt die Sekunde. Der Wettbewerb hat begonnen. Mal schauen, ob David oder jemand anderer eine bessere Methode hat. ;-) ANFANG="2011-09-25 10:39:40" ENDE="2011-09-25 10:40:10" echo "(`date +%s%N -d "$ENDE"` - `date +%s%N -d "$ANFANG"`) / 1000000000" | bc -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/openSUSE:Mailinglisten_Netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 09.01.2012 21:56, schrieb Sebastian Siebert:
Hallo Al,
Am 09.01.2012 21:30, schrieb Аl Воgnеr:
Es sind 2 Variablen gegeben, die ein Datum im folgenden Format enthalten, zB
ANFANG="2011:09:25 10:39:40" ENDE="2011:09:25 10:40:10"
Wie berechne ich die Sekundendifferenz am einfachsten?
Darf es Bash sein? ;-) Ich habe gerade mal auf die Schnelle etwas heruntergeschrieben. Du musst nur das Datum etwas umformen, dann jage es durch den date-Tool, eine kleine Gleichung bauen und pipe es dann mit dem bc-Tool. Tata! Heraus kommt die Sekunde.
Der Wettbewerb hat begonnen. Mal schauen, ob David oder jemand anderer eine bessere Methode hat. ;-)
ANFANG="2011-09-25 10:39:40" ENDE="2011-09-25 10:40:10"
echo "(`date +%s%N -d "$ENDE"` - `date +%s%N -d "$ANFANG"`) / 1000000000" | bc
Ups. Sehe gerade, dass ich die falsche Zeile eingefügt habe. Korrektur: ANFANG="2011-09-25 10:39:40" ENDE="2011-09-25 10:40:10" echo "(`date +%s -d "$ENDE"` - `date +%s -d "$ANFANG"`)" | bc -- Gruß Sebastian - openSUSE Member (Freespacer) Webseite/Blog: http://www.sebastian-siebert.de Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/openSUSE:Mailinglisten_Netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Sebastian Siebert, Am Montag, 9. Januar 2012 22:13 schrieb Sebastian Siebert:
Am 09.01.2012 21:56, schrieb Sebastian Siebert:
Hallo Al,
Am 09.01.2012 21:30, schrieb Аl Воgnеr:
Es sind 2 Variablen gegeben, die ein Datum im folgenden Format enthalten, zB
ANFANG="2011:09:25 10:39:40" ENDE="2011:09:25 10:40:10"
Wie berechne ich die Sekundendifferenz am einfachsten?
Darf es Bash sein? ;-) Ich habe gerade mal auf die Schnelle etwas heruntergeschrieben. Du musst nur das Datum etwas umformen, dann jage es durch den date-Tool, eine kleine Gleichung bauen und pipe es dann mit dem bc-Tool. Tata! Heraus kommt die Sekunde.
Der Wettbewerb hat begonnen. Mal schauen, ob David oder jemand anderer eine bessere Methode hat. ;-) ... ANFANG="2011-09-25 10:39:40" ENDE="2011-09-25 10:40:10"
echo "(`date +%s -d "$ENDE"` - `date +%s -d "$ANFANG"`)" | bc
IMHO kann man sich bc sparen, die bash kanns auch alleine: echo $((`date +%s -d "$ENDE"` - `date +%s -d "$ANFANG"`)) -- Herzliche Grüße! Rolf Muth Meine Adressen duerfen nicht fuer Werbung verwendet werden! PGP Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xF8DC41935544C89A fingerprint: C025 3071 8E56 F8F1 250A 5624 F8DC 4193 5544 C89A
Am Mo, 09 Jan 2012 21:56:19 CET schrieb Sebastian Siebert: Hallo Sebastion,
Darf es Bash sein? ;-)
Steht ja im Titel ;-)
Ich habe gerade mal auf die Schnelle etwas heruntergeschrieben. Du musst nur das Datum etwas umformen, dann jage es durch den date-Tool,
Daran hatte ich auch gedacht.
eine kleine Gleichung bauen und pipe es dann mit dem bc-Tool. Tata! Heraus kommt die Sekunde.
Der Wettbewerb hat begonnen. Mal schauen, ob David oder jemand anderer eine bessere Methode hat. ;-)
Genau deswegen habe ich die Frage gepostet. Die unterschiedlichen Varianten sind ja immer interessant. Als Draufgabe könnte man dann ja die Sekunden in Stunden, Minuten und Sekunden zurückrechnen. Da trickse ich bis jetzt auch. Im konkreten Fall werden einige Sekunden bis Minuten erwartet. Ich denke mir aber das könnte auch ein "time"-Ersatz werden, um zu sehen, wie lange ein Skript gebraucht hat, wobei mir das dann auf die Minute genau reicht, wenn das Skript Stunden zum Abarbeiten braucht. -- Αl -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (3)
-
Rolf Muth
-
Sebastian Siebert
-
Аl Воgnеr