Ich bekomme das Datum, das in einer Textdatei ist und es einer Variablen zugewiesen. Als ich das Datum aus der Datei grep, ich das bekommen,Vergleichen Sie das Systemdatum mit dem Datum aus einer Textdatei
Not After : Jul 28 14:09:57 2017 GMT
So beschneiden ich nur das Datum, die mit diesem Befehl
echo $dateFile | cut -d ':' -f 2,4
Das Ergebnis
Jul 28 14:57 2017 GMT
wäre Wie Konvertiere ich dieses Datum in die Anzahl der Sekunden, damit ich es mit dem Systemdatum vergleichen kann? Wenn es über 2 Tage alt ist.
Ich habe diesen Code, aber es funktioniert nicht. Ich erhalte eine Fehlermeldung, wenn ich es ausgeführt habe. Ich denke, weil $ dateFile eine Textdatei ist und nicht weiß, wie man sie konvertiert. Jede Hilfe wäre willkommen.
#!/bin/bash
$dateFile=grep "After :" myfile.txt | cut -d ':' -f 2,4
AGE_OF_MONTH="172800" # 172800 seconds = 2 Days
NOW=$(date +%s)
NEW_DATE=$((NOW - AGE_OF_MONTH))
if [ $(stat -c %Y "$dateFile") -lt ${NEW_DATE} ]; then
echo Date Less then 2 days
else
echo Date Greater then 2 days
fi
Ihr Code funktioniert perfekt. Vielen Dank. Ich frage mich nur, warum Sie eine Schleife benötigen, um jede Zeile in der Datei zu lesen, weil der Befehl grep automatisch die Informationen bekommt, die Sie brauchen ??? – user1736786
Ich habe meine Antwort bearbeitet, um auf Ihre Frage zu antworten. Bitte wählen Sie die richtige Antwort, wenn Sie damit zufrieden sind. – artemisian