
Ich verwende den folgenden Befehl, um Protokolldaten der letzten 10 Minuten anzuzeigen. Das funktioniert einwandfrei, wenn der Monat gleich bleibt. Wenn der Monat jedoch geändert wird, werden keine Daten angezeigt.
awk -v d1="$D1" -v d2="$D2" '$0 > d1 && $0 < d2 || $0 ~ d2' /home/user.log
Funktioniert einwandfrei, wenn
D1="Aug 1 12:00:00"
D2="Aug 1 12:10:00"
Es werden jedoch keine Daten angezeigt, wenn
D1="Jul 31 11:55:00"
D2="Aug 1 00:05:00"
PS: Ich verwende AIX
Antwort1
Ich glaube, das liegt daran, dass tatsächlich die Zeichenfolgen verglichen werden und nicht die Daten. Bei einem Monatswechsel wird der Vergleich unterbrochen.
Versuchen Sie, das Datum anders zu formatieren, beispielsweise mit dem Epochen- oder numerischen Datumsformat.
date -d "Jul 31 11:55:00" +%s
gibt 1533063300 aus. Ebenso
date -d "Aug 1 00:05:00" +%s
gibt 1533107100 aus.
Von dort aus sollte ein einfacher Vergleich möglich sein.