Ich habe Schwierigkeiten, die Protokolle aus einer Datei für einen bestimmten Zeitraum zu erhalten. Ich habe andere Posts durchgegangen, aber überall ist das Datum/die Zeit fest codiert, ich will nicht, dass es fest codiert ist und möchte es programmatisch holen.Versuchen, die Unix-Protokolle für einen bestimmten Zeitraum abzurufen
Dies ist, was ich versucht habe.
Das funktioniert,
awk -F, -v b='2016-08-10 00:40:06' -v e='date +"%F %T"' '{ if ($1 >= b && $1 <= e) print}' filename
Während dies nicht funktioniert,
awk -F, -v b='date --date="10 minutes ago" +"%F %T"' -v e='date +"%F %T"' '{ if ($1 >= b && $1 <= e) print}' filename
nicht sicher, warum das erste Datum der Parameter nicht on the fly berechnet zu werden?
Im Allgemeinen ist es besser, die ' "$ (...)" zu verwenden' Notation für [Befehl Substitution] (https: //www.gnu.org/software/bash/manual/bash.html#Command-Substitution) als die ältere '' "' ... "" '-Notation mit Back-Ticks (was das zusätzliche Problem hat, schwer zu betreten zu sein) in Markdown). Es ist nicht kritisch hier, da es keine Verschachtelung gibt, aber es ist eine gute Idee, es im Allgemeinen zu verwenden. –