Berechnen Sie die Differenz zwischen zwei Daten in Bash

Berechnen Sie die Differenz zwischen zwei Daten in Bash

In Bash können Sie die Differenz zwischen zwei Daten leicht berechnen. Dies kann in verschiedenen Szenarien nützlich sein, z. B. die Berechnung der Anzahl der Tage zwischen zwei Ereignissen oder der Bestimmung des Alters einer Person. In diesem Artikel werden wir verschiedene Methoden erörtern, um den Unterschied zwischen zwei Daten in Bash zu berechnen.

Berechnen Sie die Differenz zwischen zwei Daten

Der Befehl "Datum" in Bash kann verwendet werden, um die Differenz zwischen zwei Daten zu berechnen. Die Syntax für die Verwendung des Befehls "Datum" lautet wie folgt:

echo $ ((($ (Datum -d "yyyy-mm-dd" +%s)-$ (Datum -d "yyyy-mm-dd" +%s))/86400)))
1echo $ ((($ (Datum -d "yyyy-mm-dd" +%s)-$ (Datum -d "yyyy-mm-dd" +%s))/86400)))

Ersetzen Sie im obigen Befehl "Yyyy-MM-DD" Mit den beiden Daten, die Sie im selben Format vergleichen möchten. Der Befehl gibt die Anzahl der Tage zwischen den beiden Daten aus.

Schauen wir uns ein Beispiel an. Wenn Sie die Anzahl der Tage zwischen den Tagen berechnen möchten 1. Januar 2023 Und 28. Februar 2023, Sie können den folgenden Befehl verwenden:

echo $ (($ (Datum -d "2023-02-28" +%s)-$ (Datum -d "2023-01-01" +%s))/86400)))
1echo $ (($ (Datum -d "2023-02-28" +%s)-$ (Datum -d "2023-01-01" +%s))/86400)))

Die Ausgabe dieses Befehls ist:

58
158

Dies bedeutet, dass es gibt 58 Tage Zwischen dem 1. Januar 2023 und 28. Februar 2023.

Methode 2: Verwenden des Befehls 'BC'

Der Befehl "BC" in Bash kann verwendet werden, um mathematische Berechnungen durchzuführen. Verwenden Sie die folgende Syntax, um die Differenz zwischen zwei Daten mit dem Befehl 'BC' zu berechnen:

echo \ ($ (Datum -d "yyyy-mm-dd" +%s)-$ (Datum -d "yyyy-mm-dd" +%s) \) / 86400 | BC
1echo \ ($ (Datum -d "yyyy-mm-dd" +%s)-$ (Datum -d "yyyy-mm-dd" +%s) \) / 86400 | BC

Ersetzen Sie im obigen Befehl "Yyyy-MM-DD" Mit den beiden Daten, die Sie im selben Format vergleichen möchten. Der Befehl gibt die Anzahl der Tage zwischen den beiden Daten aus.

Zum Beispiel:

echo \ ($ (Datum -d "2023-02-28" +%s)-$ (Datum -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58
123echo \ ($ (Datum -d "2023-02-28" +%s)-$ (Datum -d "2023-01-01" +%s) \) / 86400 | BC #Output: 58

Methode 3: Verwenden des Befehls 'awk'

Der Befehl 'awk' in bash kann auch verwendet werden, um die Differenz zwischen zwei Daten zu berechnen. Verwenden Sie die folgende Syntax:

echo $ (Datum -d "yyyy-mm-dd" +%s) $ (Datum -d "yyyy-mm-dd" +%s) | awk 'print ($ 1 - $ 2) / 86400'
1echo $ (Datum -d "yyyy-mm-dd" +%s) $ (Datum -d "yyyy-mm-dd" +%s) | awk 'print ($ 1 - $ 2) / 86400'

Ersetzen Sie im obigen Befehl "Yyyy-MM-DD" Mit den beiden Daten, die Sie im selben Format vergleichen möchten. Der Befehl gibt die Anzahl der Tage zwischen den beiden Daten aus.

Zum Beispiel:

Echo $ (Datum -d "2023-02-28" +%s) $ (Datum -d "2023-01-01" +%s) | awk 'print ($ 1 - $ 2) / 86400' #output: 58
123Echo $ (Datum -d "2023-02-28" +%s) $ (Datum -d "2023-01-01" +%s) | awk 'print ($ 1 - $ 2) / 86400' #output: 58

Abschluss

Die Berechnung der Differenz zwischen zwei Daten in Bash kann unter Verwendung verschiedener Befehle wie "Datum", "BC" und "awk" durchgeführt werden. Durch die Verwendung dieser Befehle können Sie die Anzahl der Tage zwischen zwei Daten problemlos berechnen. Zu wissen, wie man den Unterschied zwischen zwei Daten berechnet.