Я получаю дату, которая находится внутри текстового файла и присваивается переменной. Когда я Grep дату из файла, я получаю это,Сравните системную дату с датой из текстового файла
Not After : Jul 28 14:09:57 2017 GMT
Так что я только обнажаются дату, с помощью этой команды
echo $dateFile | cut -d ':' -f 2,4
Результат будет
Jul 28 14:57 2017 GMT
Как я конвертирую эту дату в число секунд, поэтому я могу сравнить ее с системной датой? Если ему больше 2 дней.
У меня есть этот код, но он не работает. Я получаю сообщение об ошибке, когда я его запускал. Я думаю, что это потому, что $ dateFile является текстовым файлом, и он не знает, как его преобразовать. Любая помощь будет оценена по достоинству.
#!/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
Ваш код работает отлично. Спасибо. Просто интересно, зачем вам нужен цикл для чтения каждой строки в файле, потому что команда grep автоматически получит нужную вам информацию ??? – user1736786
Я отредактировал свой ответ, чтобы ответить на ваш вопрос. Пожалуйста, выберите его как правильный ответ, если вы его удовлетворены. – artemisian