Wenn ich unter zwei Daten habe:
2015-09-12,2015-08-13
Und ich muss die Anzahl der Tage zwischen ihnen erhalten, ich werde den folgenden Code verwenden:
awk -F'[-,]' '{print 360*($4-$1)+30*($5-$2)+($6-$3)}'
Die Ausgabe für diesen Code erfolgt, -29
während der Unterschied tatsächlich ist29
bash
text-processing
awk
Deu7
quelle
quelle
sqrt(x^2)
in Ordnung ist, jedoch zusqrt(x)^2
winzigen Fehlern führen kann, die Überraschungen verursachen können. Für busyboxawk
muss es mit aktivierter mathematischer Unterstützung erstellt werden (nicht die Standardeinstellung in Debian-Paketen zum Beispiel).sqrt(x^2)
.Ein anderer Weg:
quelle
Vorausgesetzt, Sie sind auf GNU
awk
, dann ist die Funky-mktime
Funktion hier nützlich.quelle
Zu spät, aber hier ist eine Lösung, die den GNU-
date
Befehl verwendet, der nicht auf festen 30 Tagen pro Monat basiert, sondern auf der Antwort von Steve .Für die folgende Eingabe:
Die Ausgabe ist:
quelle