Относительная дата Bash (x дней назад) - PullRequest
10 голосов
/ 13 января 2011

У меня есть строка даты, которую я могу проанализировать и отформатировать с помощью команды date из сценария bash.

Но как определить, сколько дней назад эта дата была из моего сценария?Я хотел бы закончить с номером.

Ответы [ 3 ]

7 голосов
/ 13 января 2011

Вы можете сделать некоторую арифметику даты:

DATE=01/02/2010
echo $(( ( $(date +%s) - $(date -d "$DATE" +%s) ) /(24 * 60 * 60 ) ))
4 голосов
/ 30 июня 2015

Использовать саму дату в качестве значения даты для даты.Пример 5 дней назад:

date -d "`date`-5days"
4 голосов
/ 13 января 2011

Преобразуйте вашу дату и теперь в секунды с начала эпохи, вычтите, разделите на количество секунд в дне:

#!/bin/bash

((a = `date -d "Wed Jan 12 02:33:22 PST 2011" +%s`))
((b = `date +%s`))
echo $(( (b-a) / (60*60*24)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...