Tente algo assim:
#!/bin/bash
d1='date -d 20140929 +%s'
d2='date -d 20001115 +%s'
date --date=@$(($d1 - $d2)) +'%m months, %d days, %H hours'
Saída:
11 months, 15 days, 02 hours
Como posso subtrair duas datas no formato de época usando o Shell Scripting. Eu quero a saída no formato Meses, Dias, Horas. Também deve funcionar mesmo por mais de 12 meses (como eu me deparei com alguns que foram redefinidos para 0 meses, se mais de 12)
Tente algo assim:
#!/bin/bash
d1='date -d 20140929 +%s'
d2='date -d 20001115 +%s'
date --date=@$(($d1 - $d2)) +'%m months, %d days, %H hours'
Saída:
11 months, 15 days, 02 hours
#!/bin/bash
d=(60sec 60min 24hours 30days 12month 1000year)
i=0
while [ $1 -ge ${d[i]%%[a-z]*} ]
do
set -- $(($1/${d[i]%%[a-z]*})) $(($1%${d[i]%%[a-z]*})) ${d[i]##*[0-9]} ${*:2}
((i++))
done
echo $1 ${d[i]##*[0-9]} ${*:2}
Tags date shell shell-script