Я хочу преобразовать дату в метку времени.
Мой ввод выглядит примерно так:
Mon Sep 30 17:37:39 2019
И я хочу взять эту метку времени и проверить, сколько дней прошло с тех порсегодня.
То, что я пробовал:
data = "$(date --date "$(echo "$info" | grep "Date added: *" | sed 's/Date added\:\s//i' | awk '{$1=$1};1')" '+%H')"
final = $(expr $(date '+%H') - $data)
Однако в некоторых случаях это будет выводить значения, такие как -9, -3, -12 и т. д., и на текущую дату, которую он в настоящее время распечатывает "08" . Есть какие-нибудь идеи, как решить эту проблему?
Стоит упомянуть, что мне действительно не нужны точные часы, если это усложняет ситуацию, мне интереснее, сколько дней прошло.
РЕДАКТИРОВАТЬ
Текущее решение (не обрабатывает часы, которые являются обломом). Я извлекаю День, Месяц и Год и систематизирую их в YYYY-MM-DD, а затем преобразую в метку времени. Это решение не обрабатывает часы, которые я хочу в конце.
$(( ($(expr $(date '+%s')) - $(date -d "$(printf '%s\n' "$date_added" | awk '{
printf "%04d-%02d-%02d\n", $5, \
(index("JanFebMarAprMayJunJulAugSepOctNovDec",$2)+2)/3,$3}')" +"%s")) / 3600 ))